当我为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.
答案 0 :(得分:3)
注意:这个答案是在提问者澄清之前发布的,即手动修改不是提问者所追求的......
namespace Project.Models
{
public class Students
{
public readonly string DisplayName = "University Students";
}
}
然后在视野中
<div>@Model.DisplayName</div>
作为替代方案 - 如果你想坚持一个属性(我不能理解为什么,但是......)你可以诉诸另一个存在的名为DisplayNameAttribute,但是你可能需要在视图中做一些丑陋的检索,因为我不知道为你做的Html Helper。