MVC3 - Razor Edit / Create脚手架模板使用DisplayName注释。删除/详细信息没有。为什么?

时间:2012-02-09 02:23:52

标签: asp.net asp.net-mvc-3

第一次使用MVC3,对于类似noob的问题感到抱歉。

我正在尝试为UI层注释我的数据模型。在我的模型中,我有以下

[DisplayName("First Name")]
public string firstName { get; set; }

当我基于Details / Delete脚手架创建视图时,它会生成以下内容:

<div class="display-label">firstName</div>
<div class="display-field">
    @Html.DisplayFor(model => model.firstName)
</div>

这显然不会使用我的注释模型。当我基于Create / Edit脚手架创建视图时,它会生成此HTML:

<div class="editor-label">
    @Html.LabelFor(model => model.firstName)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.firstName)
    @Html.ValidationMessageFor(model => model.firstName)
</div>

因为它使用的是@ Html.LabelFor,它最终会使用我预期的注释模型。

显然我可以看到共同的主题 - 前两个是可编辑的,后两个是只读的。我无法想象为什么他们会省去我们两个人的麻烦,而不是其他人,但我确定必须有理由,对吗?

因此,如果有一个原因,是我手动浏览每个视图的唯一解决方案。将内容从firstName更改为First Name?

1 个答案:

答案 0 :(得分:1)

我不知道他们为什么这样做,但您可以为使用注释的对象as explained here创建自己的显示模板。