加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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; }
}

我承认这个例子是很有意思的…

这些是支持使用我可以想出的属性的最好的论据。我个人的意见是,在大多数情况下,这种事情最好留给标记。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读