1,在ASP.NET MVC中,路由机制特别碉堡,直接对应于动作方法。没有必要给每一个动作方法添加视图,当视图返回View时,路由系统会自动寻找指定目录下的视图资源。
1 public ViewResult AutoProperty() 2 { 3 Product p = new Product(); 4 p.Name = "Chris"; 5 return View("Result", (object)String.Format("你是:{0}", p.Name)); 6 }
如AutoProperty时HomeController中的动作方法,并没有指定视图,但是在返回视图的时候,会自动在Views\Home下查找指定的视图资源。
Url为~/Home/AutoProperty。同样验证了URL与动作方法的一致性。
2,@HTML
@Html.DisplayNameFor(model => model.Email)显示属性名称,在定义属性时可以设置DisplayName属性来修改显示的名称。
如:
1 [DisplayName("电子邮件地址")] 2 public string Email { get; set; }
这样,@~处将不显示“Email”,而是显示“电子邮件地址”。
@Html.DisplayFor(modelItem => item.Name),显示的是特定Item的Name值,如:SharpL
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) ,ActionLink用来输出超链接,第一个参数指超链接的显示文本,第二个参数指Action,第三个参数为路由参数。
@Html.LabelFor(model => model.Name),特定字段的显示名称,对于Email来说任然会显示“电子邮件地址”,所以和DisplayNameFor类似。
二者存在细微的差异,在输出的HTML中,LabelFor输出的内容包含<label>标签,而DisplayFor只会输出属性的显示名称。如图:
1 <div class="editor-label"> 2 <label for="Email">电子邮件地址</label> 3 </div>