gpt4 book ai didi

asp.net-mvc - 为什么许多 MVC html Helpers 使用 Delegates 作为输入参数

转载 作者:行者123 更新时间:2023-12-04 05:04:08 26 4
gpt4 key购买 nike

在 MVC 中,如果要为属性创建编辑器或显示属性,请执行以下操作:

@Html.EditorFor(m=> m.MyModelsProperty);
@Html.DisplayFor(m=> m.MyModlesProperty);

为什么我们必须传递一个委托(delegate)为什么我们不能直接传递模型的属性?例如。:
@html.EditorFor(Model.MyModlesProperty);

最佳答案

原因是元数据。您知道,您可以在模型上添加的所有属性,例如 [Required] , [DisplayName] , [DisplayFormat] , ... 所有这些属性都是从 lambda 表达式中提取的。如果您只是传递了一个值,那么助手将无法从中提取任何元数据。这只是一个虚拟值。

lambda 表达式允许分析模型上的属性并从中读取元数据。然后助手变得智能并且根据您指定的属性将采取不同的行动。

因此,通过使用 lambda 表达式,助手可以做更多的事情,而不仅仅是显示一些值。它能够格式化这个值,它能够验证这个值,......

关于asp.net-mvc - 为什么许多 MVC html Helpers 使用 Delegates 作为输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15739358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com