从ASP.NET 2.0(VB)到MVC 3(C#),我对于用于View的语法感到非常困惑.
@Html.LabelFor(m => m.UserName)
那m来自哪里?我唯一的猜测是,它代表了被传递到视图中的模型.我尝试将m更改为c,它仍然可以正常工作.
语法的一部分涉及“=>”更多的MVC,C#或者剃刀元素?
解决方法
Where did that
m
come from?
这是lambda表达式中的参数.
My only guess is that it represents the model that is being passed into the view. I tried changing the m to c and it still works fine.
那是因为这个名字没关系.它只是一个参数名称,实际上并没有引用任何现有的变量.
Is the part of the Syntax that involves the “=>” more of a MVC,C#,or Razor element?
它是C#,但是LabelFor使用编译器翻译m => m.UserName来提取构建标签所需的内容.
这是一个非常深刻的错综复杂的课题.我建议你找到一本你很舒服的书(例如,深度C#在这个问题上非常好)了解更多.你想阅读关于lambda表达式和表达式树.