请澄清“=>”的用法在MVC Razor语法中?

时间:2013-12-30 20:59:28

标签: c# lambda

请澄清MVC Razor中=>的用法。例如,在诸如以下语句的上下文中:

@Html.LabelFor(m => m.AnswerText)

4 个答案:

答案 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)

就像说=>暗示=>之前的单词是占位符变量一样简单。

更多信息herehere