C# 请澄清MVC Razor语法中“=>”的用法?
请澄清=>在MVC Razor中的用法。例如,在以下语句的上下文中:C# 请澄清MVC Razor语法中“=>”的用法?,c#,lambda,C#,Lambda,请澄清=>在MVC Razor中的用法。例如,在以下语句的上下文中: @Html.LabelFor(m => m.AnswerText) 简单地说=>意味着=>前面的单词是一个占位符变量 更多信息和在这种情况下以及任何其他情况下,这都是一个问题 您需要使用lambda表达式,不能仅使用Model.AnswerText调用该方法。如果您使用Model.AnswerText,它将仅作为方法的常规参数。使用lambda表达式作为参数时,该方法可以查看模型元数据,以获取html元素的名称和值以及
@Html.LabelFor(m => m.AnswerText)
简单地说=>意味着=>前面的单词是一个占位符变量
更多信息和在这种情况下以及任何其他情况下,这都是一个问题
您需要使用lambda表达式,不能仅使用Model.AnswerText调用该方法。如果您使用Model.AnswerText,它将仅作为方法的常规参数。使用lambda表达式作为参数时,该方法可以查看模型元数据,以获取html元素的名称和值以及其他内容。=>是lambda表达式。基本上,它是选择模型中某个参数值的简写。 例如,如果你有
@model YourDomain.Foo.Models.Bar
在你的酒吧模型中有一个名为UserName的字符串
然后使用@Html.TextBoxForm=>m.UserName
将在模型中显示用户名的值。约翰·史密斯
但是,当使用LabelFor时,它会显示模型参数的名称,而不是显示模型参数的值,因此在您使用的示例中
@Html.LabelFor(m => m.AnswerText)
结果显示将是AnswerText它是一个lambda运算符,就像C中的其他任何地方一样。在本例中,LabelFor是一个扩展方法,带有参数表达式,右侧返回模型属性值。它并不意味着等于或大于,它指出m指的是模型,特定于AnswerText属性。感谢链接。第二个环节特别说明了这一点