VS2013 MVC - 显示名称在某些字段上不起作用

时间:2015-06-09 20:29:12

标签: asp.net-mvc data-annotations

刚开始使用MVC。

我有一个模型,并为持久数据注释创建了一个元数据类。其中一些有效,有些则无效。

ScreenShot

从屏幕截图中可以看出,JobNo displayName不起作用,但VersionRef是。无法弄清楚原因。

有人有任何想法吗?主要区别在于Jobno来自相关表格

经过一些调查后,似乎由于某种原因,scaffolded .cshtml包含来自相关表的任何字段的文字字符串。

<div class="form-horizontal">
    <h4>Job</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.JobNo, "JobNo", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("JobNo", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.JobNo, "", new { @class = "text-danger" })
        </div>
    </div>

这是否有一个raeson?

此致

标记

3 个答案:

答案 0 :(得分:2)

你试过这个吗? [DisplayAttribute(Name =“Full Name”)]或[DisplayName(“Full Name”)]

您可以查看以下链接:Example

答案 1 :(得分:2)

根据这个:

https://msdn.microsoft.com/en-us/library/hh833698%28v=vs.118%29.aspx

您使用LabelFor参数重载labelText

public static MvcHtmlString LabelFor<TModel, TValue>(
    this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression,
    string labelText,
    IDictionary<string, Object> htmlAttributes)
  

LabelText的       键入:System.String       要显示的标签文本。

考虑使用:

@Html.LabelFor(model => model.JobNo, 
    new { @class = "control-label col-md-2" })

有关更多重载,请参阅https://msdn.microsoft.com/en-us/library/system.web.mvc.html.labelextensions.labelfor%28v=vs.118%29.aspx

答案 2 :(得分:2)

经过一些调查后,似乎由于某种原因,scaffolded .cshtml包含来自相关表的任何字段的文字字符串。