比如你这个视图的Model是LogOnModel(如下),那么m就是指代LogOnModel  
public class LogOnModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }
    }
Html.LabelFor(m => m.UserName)就是创建一个lable,视图引擎会将这句话编译为
<label id="UserName" name="UserName">User name</label>
m=>m.UserName是一个lamba表达式,相关内容可查看C#高级编程

解决方案 »

  1.   


    我想问几个问题  1. 如果html.labelfor  是创建一个label 那么html.label呢?? 2.怎么知道view下的model是哪个  是根据view的文件名字加个model吗??3.还有提交表单是怎么提交的,为什么不用像html那样给要action的页面,然后就能将表单的值传到相应的地方呢
      

  2.   


       建议楼主看下MVC的资料  参考
      

  3.   

    1.Html.Label和LabelFor都是创建一个label,区别是LabelFor的参数是强类型的,目的就是为了使用lamba表达式,这可以促成更好的编译时视图检查(可以在编译时发现缺陷,而不是在运行时),还可以促成视图模板中更好的代码intellisense支持,现在推荐用强类型的。
     参考http://msdn.microsoft.com/zh-cn/downloads/ff183115.aspx
    2.model是你在View中指定的,在页面中添加@model Test.Model.LogOnModel即为View指定了一个强类型的Model
    3.表单提交跟html中的是一样的@using (Html.BeginForm())这里最后还是生成了form标签,只是默认的action是该页面的路由地址,method为post
    建议:学习mvc3可以对照 musicstore来学习,博客园上有中文教程
          http://www.cnblogs.com/haogj/archive/2011/11/23/2246032.html
          最好是先了解mvc从客户端发起请求到返回相应的整个过程
      

  4.   

    不会c#我怎么会去学mvc。只能说不牛
      

  5.   

    就问题说问题,=>是Lambda表达式,它表示一个匿名委托,m是这个委托的一个参数,m.UserName相当于函数体,{ return m.UserName; }