定义模型的显示名称

时间:2016-03-28 17:39:13

标签: c# asp.net asp.net-mvc visual-studio-2012 asp.net-mvc-5

当我为Creating MVC View,using Entity Framework使用visual studio scaffolding选项时,Visual Studio会创建Views并将Model的名称放在每个View的顶部,并使用DisplayName作为字段标签。即它关心字段的Display注释。例如这是我的模型类:

namespace ProjectManager.Models
{
    [Display(Name="A More Readable Name for my class to display it to users!")]
    public class MyVeryComplicatedlyNamedModel
    {

         [Display(Name="نام(Description for name field in Unicode)")]            
         string Name;
    }
}

自动生成的视图如下所示:

@model Project.Models.MyVeryComplicatedNamedModel

@{
    ViewBag.Title = "Details";
}

<h2>Details</h2>

<div>
    <h4>MyVeryComplicatedNamedModel</h4>

    ....
    ....

我想知道有没有为类本身设置DisplayName的方法,这样显示为h4标签(<h4>MyVeryComplicatedNamedModel</h4>)的视图标题更具可读性,我可以选择自己的描述?关键是我不想操纵自动创建的视图来执行此操作,我想使用某种注释来帮助Visual Studio选择我自己的类名描述,

使用语法Display(Name='')会导致错误Attribute 'Display' is not valid on this declaration type. It is only valid on 'method, property, indexer, field, param' declarations.

1 个答案:

答案 0 :(得分:3)

注意:这个答案是在提问者澄清之前发布的,即手动修改不是提问者所追求的......

namespace Project.Models
{
    public class Students
    {
      public readonly string DisplayName = "University Students";
    }
}

然后在视野中

<div>@Model.DisplayName</div>

作为替代方案 - 如果你想坚持一个属性(我不能理解为什么,但是......)你可以诉诸另一个存在的名为DisplayNameAttribute,但是你可能需要在视图中做一些丑陋的检索,因为我不知道为你做的Html Helper。