20

我有以下代码

<div class="editor-label">
    @Html.LabelFor(model => model.subCategoryName)
</div>

它将html呈现为

<div class="editor-label">
   <label for="subCategoryName">Sub-Category Name</label>
</div>

如何在没有<label>但仍从 ViewModel DataAnnotations 中获取值的情况下呈现干净的 HTML,例如:

    [Display(Name = "Sub-Category Name")]
    public string subCategoryName { get; set; }

<div class="editor-label">
   Sub-Category Name
</div

我已经尝试了@Html.XXXXXX(.DisplayTextFor、.DisplayNameFor 等)的几乎所有方法——但仍然无法正常工作。

4

3 回答 3

28

我认为在这种情况下正确的解决方案是不使用LabelFor而是使用新的 MVC 4 方法DisplayNameFor

 @Html.DisplayNameFor(model => model.subCategoryName)

我注意到你说它不起作用,但这似乎很奇怪。这是 ASP.Net 上的一个示例- 将新字段添加到电影模型和表中,这正是您想要做的。

于 2012-08-30T21:16:41.903 回答
7

发现和修复:经过大量挖掘,我找到了解决方案。我的 DataAnnotation 格式不正确:

    [Required]
    [DisplayName("Sub-Category Name")]
    public string subCategoryName { get; set; } 

不是

    [Required]
    [Display(Name = "Sub-Category Name")]
    public string subCategoryName { get; set; } 

2 - 我使用了以下 RAZOR 代码:

@Html.DisplayNameFor(model => model.subCategoryName)

它现在工作!

于 2012-08-31T03:10:12.863 回答
3
[Mostly use in Display Name]
@Html.DisplayNameFor(model => model.UserName) 

[Used for Label, Functionality of Label click on it then cursor point to related control]

 @Html.LabelFor(m => m.UserName)               

[Used for Textbox]

@Html.TextBoxFor(m => m.UserName)

[Used for Validation Message]

@Html.ValidationMessageFor(m => m.UserName)
于 2013-07-18T09:10:49.330 回答