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
- MVC以JSONforms返回部分视图
- 在ASP.NET MVC 4应用程序中打印版本号
- 未find方法:'!! 0 System.Array.Empty()'。 ASApp.BundleConfig.RegisterBundles(BundleCollection包)inBundleConfig.cs
- MVC – 设置SelectList的选定值
- “参数字典包含参数的空条目” – 如何解决?
- configurationASP.NET MVC进行针对AD的身份validation
- ASP.NET MVC 1.0 AfterBuilding视图在TFS Build上失败
- 正确的JSON序列化在MVC 4
- ASP.net MVC – 显示模板的集合