我有一个View Model,它的定义如下:
public class VariableViewModel
{
public string TemplateName { get; set; }
public bool Enabled { get; set; }
public string Value { get; set; }
}我在其他视图模型中使用此模型:
public class CreateViewModel
{
[Display(Name="First Name")]
public VariableViewModel FirstName { get; set; }
[Display(Name="Last Name")]
public VariableViewModel LastName { get; set; }
}我有一个为VariableViewModel定义的编辑器模板:
@model VariableViewModel
@Html.HiddenFor(model => model.TemplateName)
@Html.HiddenFor(model => model.Enabled)
@Html.LabelFor(model => model.Value)
@Html.TextBoxFor(model => model.Value)我的CreateViewModel的编辑器模板:
@model CreateViewModel
@Html.EditorFor(model => model.FirstName)
@Html.EditorFor(model => model.LastName)现在我的编辑器模板正在创建标签,如下所示:
<label for="FirstName">Value</label>是否可以通过查看parent属性的DisplayAttribute来确定应该使用什么而不是将其赋值,从而修改LabelFor?我希望我的标签看起来像这样:
<label for="FirstName">First Name</label>
<label for="LastName">Last Name</label>问题是Display属性不在我要为其创建标签的属性上,而是在包含对象上。有没有办法实现我想要的东西?
发布于 2012-02-08 05:15:37
在您的编辑器模板中,只需对标签使用以下内容:
@Html.LabelFor(model => model.Value, ViewData.ModelMetadata.DisplayName)我们将父显示名称作为标签的值进行传递。
https://stackoverflow.com/questions/9181110
复制相似问题