请澄清MVC Razor中=>
的用法。例如,在诸如以下语句的上下文中:
@Html.LabelFor(m => m.AnswerText)
答案 0 :(得分:1)
=>是一个lambda表达式。基本上,它是选择模型中某个参数值的简写。 例如,如果你有
@model YourDomain.Foo.Models.Bar
在您的Bar模型中,您有一个名为UserName的字符串 然后使用@ Html.TextBoxFor(m => m.UserName) 将在模型中显示用户名的值。即(约翰史密斯) 但是,当使用LabelFor而不是显示Model参数的值时,它会显示模型参数的名称,因此在您使用的示例中
@Html.LabelFor(m => m.AnswerText)
您的结果显示将是AnswerText
答案 1 :(得分:0)
在该背景下(和任何其他),它是lambda expression。
您需要使用lambda表达式,不能只使用Model.AnswerText调用该方法。如果使用Model.AnswerText,它只能作为方法的常规参数。当您使用lambda表达式作为参数时,该方法可以查看模型元数据,获取名称(对于html元素)和值(以及其他内容)。
答案 2 :(得分:0)
它是一个lambda运算符,就像C#中的其他任何地方一样。在这种情况下,LabelFor是一个带有参数表达式的扩展方法,它返回模型属性值(右侧)。
答案 3 :(得分:-2)