Html.Label,Html.LabelFor和Html.LabelForModel有什么区别

@Html.Label()@Html.LabelFor()@Html.LabelForModel()方法有什么@Html.LabelForModel()

Html.Label为您提供一个名称与指定的input文本匹配的input的标签(更具体地说,对于匹配stringexpression式的模型属性):

 // Model public string Test { get; set; } // View @Html.Label("Test") // Output <label for="Test">Test</label> 

Html.LabelFor为您提供了由提供的expression式(通常是模型属性)表示的属性的标签:

 // Model public class MyModel { [DisplayName("A property")] public string Test { get; set; } } // View @model MyModel @Html.LabelFor(m => m.Test) // Output <label for="Test">A property</label> 

Html.LabelForModel有点棘手。 它返回一个标签,其值为模型对象表示的参数的值。 这对于自定义编辑器模板尤其有用。 例如:

 // Model public class MyModel { [DisplayName("A property")] public string Test { get; set; } } // Main view @Html.EditorFor(m => m.Test) // Inside editor template @Html.LabelForModel() // Output <label for="Test">A property</label> 

Html.Label – 只要创build一个标签标签,无论传递给构造函数的string是什么

Html.LabelFor – 为该特定属性创build一个标签。 这是强types的。 默认情况下,这只是做属性的名称(在下面的例子中,如果Display属性不存在,它将输出MyProperty)。 这个的另一个好处是你可以在你的模型中设置显示属性,这就是在这里:

 public class MyModel { [Display(Name="My property title") public class MyProperty{get;set;} } 

在你看来:

 Html.LabelFor(x => x.MyProperty) //Outputs My property title 

在上面,LabelFor将显示<label for="MyProperty">My property title</label> 。 这很好地工作,所以你可以在一个地方定义该属性的标签将在任何地方显示。

我认为应该更详细地解释@Html.LabelForModel()的用法。

LabelForModel方法返回HTML标签元素以及模型表示的属性的属性名称。

你可以参考下面的代码:

模型中的代码:

 using System.ComponentModel; [DisplayName("MyModel")] public class MyModel { [DisplayName("A property")] public string Test { get; set; } } 

代码视图:

 @Html.LabelForModel() <div class="form-group"> @Html.LabelFor(model => model.Test, new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.Test) @Html.ValidationMessageFor(model => model.Test) </div> </div> 

输出截图:

在这里输入图像说明

参考asp.net论坛上的答案

假设你需要一个带有文本客户名称的标签,而不是使用两种方式来实现它

 [1]@Html.Label("CustomerName") [2]@Html.LabelFor(a => a.CustomerName) //strongly typed 

第二种方法使用了你的模型的属性。 如果你的视图实现了一个模型,那么你可以使用第二种方法。

更多信息请访问下面的链接

http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx