首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Parent属性的DisplayAttribute

获取Parent属性的DisplayAttribute
EN

Stack Overflow用户
提问于 2012-02-08 01:44:15
回答 1查看 323关注 0票数 0

我有一个View Model,它的定义如下:

代码语言:javascript
复制
public class VariableViewModel
{
    public string TemplateName { get; set; }
    public bool Enabled { get; set; }
    public string Value { get; set; }
}

我在其他视图模型中使用此模型:

代码语言:javascript
复制
public class CreateViewModel
{
    [Display(Name="First Name")]
    public VariableViewModel FirstName { get; set; }

    [Display(Name="Last Name")]
    public VariableViewModel LastName { get; set; }
}

我有一个为VariableViewModel定义的编辑器模板:

代码语言:javascript
复制
@model VariableViewModel

@Html.HiddenFor(model => model.TemplateName)
@Html.HiddenFor(model => model.Enabled)
@Html.LabelFor(model => model.Value)
@Html.TextBoxFor(model => model.Value)

我的CreateViewModel的编辑器模板:

代码语言:javascript
复制
@model CreateViewModel

@Html.EditorFor(model => model.FirstName)
@Html.EditorFor(model => model.LastName)

现在我的编辑器模板正在创建标签,如下所示:

代码语言:javascript
复制
<label for="FirstName">Value</label>

是否可以通过查看parent属性的DisplayAttribute来确定应该使用什么而不是将其赋值,从而修改LabelFor?我希望我的标签看起来像这样:

代码语言:javascript
复制
<label for="FirstName">First Name</label>
<label for="LastName">Last Name</label>

问题是Display属性不在我要为其创建标签的属性上,而是在包含对象上。有没有办法实现我想要的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-08 05:15:37

在您的编辑器模板中,只需对标签使用以下内容:

代码语言:javascript
复制
@Html.LabelFor(model => model.Value, ViewData.ModelMetadata.DisplayName)

我们将父显示名称作为标签的值进行传递。

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

https://stackoverflow.com/questions/9181110

复制
相关文章

相似问题

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