首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Html.Label、Html.LabelFor和Html.LabelForModel有什么不同

Html.Label、Html.LabelFor和Html.LabelForModel有什么不同
EN

Stack Overflow用户
提问于 2013-05-03 03:27:36
回答 3查看 152.5K关注 0票数 90

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-03 04:09:08

Html.Label为名称与指定输入文本匹配的输入提供标签(更具体地说,为与字符串表达式匹配的模型属性):

代码语言:javascript
复制
// Model
public string Test { get; set; }

// View
@Html.Label("Test")

// Output
<label for="Test">Test</label>

Html.LabelFor为所提供的表达式表示的属性(通常是模型属性)提供一个标签:

代码语言:javascript
复制
// 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就有点棘手了。它返回一个标签,其for值是由模型对象表示的参数的值。这对于自定义编辑器模板特别有用。例如:

代码语言:javascript
复制
// 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>
票数 114
EN

Stack Overflow用户

发布于 2013-05-03 04:06:04

Html.Label -只需使用传入构造函数的字符串创建一个label标记

Html.LabelFor -为该特定属性创建标签。这是强类型的。默认情况下,这将只执行属性的名称(在下面的示例中,如果不存在显示属性,它将输出MyProperty )。这样做的另一个好处是您可以在模型中设置display属性,这将放在这里:

代码语言:javascript
复制
public class MyModel
{
    [Display(Name="My property title")
    public class MyProperty{get;set;}
}

在您的视图中:

代码语言:javascript
复制
Html.LabelFor(x => x.MyProperty) //Outputs My property title

在上面的代码中,LabelFor将显示<label for="MyProperty">My property title</label>。这可以很好地工作,因此您可以在一个地方定义该属性的标签,并将其显示在所有地方。

票数 12
EN

Stack Overflow用户

发布于 2013-05-03 03:52:49

假设您需要一个带有文本customername的标签,您可以使用两种方法来实现它

代码语言:javascript
复制
[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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16346179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档