asp.net – MVC 4数据注释“显示”属性
发布时间:2020-12-15 19:12:23 所属栏目:asp.Net 来源:网络整理
导读:我开始与MVC 4(Razor视图引擎)。 (我相信这可能适用于MVC 3和更早版本。)我想知道是否有任何好处,使用DisplayAttribute数据注释在视图内,而只是直接在HTML中写入一个字符串。例如,如果我有以下模型: public class Thing{ public string WildAndCrazyProp
我开始与MVC 4(Razor视图引擎)。 (我相信这可能适用于MVC 3和更早版本。)我想知道是否有任何好处,使用DisplayAttribute数据注释在视图内,而只是直接在HTML中写入一个字符串。例如,如果我有以下模型:
public class Thing { public string WildAndCrazyProperty { get; set; } } …将有任何好处,注释属性为: [Display(Name = "Wild and Crazy")] public string WildAndCrazyProperty { get; set; } …和我的标记是: <html> <body> <div>@Html.DisplayNameFor(modelItem => modelItem.WildAndCrazyProperty)</div> <div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div> </body> </html> …与没有注释,并做: <html> <body> <div>Wild and Crazy</div> <div>@Html.DisplayFor(modelItem => modelItem.WildAndCrazyProperty)</div> </body> </html> 在这种情况下,我没有提到Html.LabelFor的原因是因为属性的数据在页面上显示为静态(即不可编辑)文本。数据永远不会在此网页上进行编辑,因此我无需在第二个< div>中使用Html.TextBoxFor。并随后使用Html.LabelFor将标签与该文本框正确关联。 解决方法
如果两个不同的视图共享相同的模型(例如,也许一个是移动输出和一个是常规的),它可能很高兴有字符串驻留在一个地方:作为ViewModel上的元数据。
此外,如果您有一个继承版本的模型,需要一个不同的显示,它可能是有用的。例如: public class BaseViewModel { [Display(Name = "Basic Name")] public virtual string Name { get; set; } } public class OtherViewModel : BaseViewModel { [Display(Name = "Customized Inherited Name")] public override string Name { get; set; } } 我承认这个例子是很有意思的… 这些是支持使用我可以想出的属性的最好的论据。我个人的意见是,在大多数情况下,这种事情最好留给标记。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- razor – ASP.NET mvc使用IEnumerable模型和输入标记帮助器
- 在asp.net mvc 2.0中使用Html.DropDownListFor帮助器时如何
- asp.net – IIS返回找不到.mp4文件的404
- ASP.NET MVC4中的PartialViews
- asp.net – web-api&swagger文档
- asp.net-web-api – WebApi – 传递一组值
- asp.net-mvc – ErrorAttribute vs OnException与Applicati
- asp.net-mvc – 为什么font-awesome在localhost而不是web上
- asp.net – 自定义编辑删除选择GridView中的链接
- asp.net-mvc – 将http://mydomain.com/ctrlr/act/val转发到
推荐文章
站长推荐
热点阅读