mvc里面在写更改密码的model的时候下面的这段代码的为什么要用[]把required括起来,[]在这里有什么意义呢

[Required][DataType(DataType.Password)][Display(Name="Currentpassword")]publicstringO... [Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }
为什么要用[]把required括起来,[ ]在这里有什么意义呢?[ ] 里面的代码又是什么意思呢?
展开
 我来答
376710727
2017-06-13 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1268万
展开全部
这是一种AOP技术(http://baike.baidu.com/link?url=lzGpRIGkvk4Z105glgDzIiXh8H9hT1VWj9rlBm2po41if0pwpRLSjD7vmfku5red5XqNCWCs-80zNAPzE0fCBa
比如你举的例子中,[Required]是System.ComponentModel.DataAnnotations下的一个Filter,他会告诉编译器,OldPassword这个属性是“必要“的,即必填项。
所以你只需要在字段上加上这么简单的几个字母,通过DataAnnotations,即可在页面中让表单自动审查这个 OldPassword字段使用填写了合法的值。
也可以扩充这个审查器的属性,如:
[Required(AllowEmptyStrings =false,ErrorMessage ="密码不填就没法提交")]]
当用户提交表单时如果该字段留空,则会报出给定的提示.。
[Dispaly]则是DisplayNameattribute类的一个Filter,加上之后,编译器会自动把这个属性的“展示名称”变为Current password。

其他很多地方也会用到AOP, 比如最常见的[Serializable] ,表示某个类或者某个字段是可以被序列化的。稍微看看资料应该会非常好理解,主要是用于不同层级间的解耦和复用。
匿名用户
2015-07-30
展开全部
直接跟出字段的字符串:@Html.DisplayText("IsApproved"),这样的结果和上面的一致。
除了上面的@Html.DisplayFor(x=>x.IsApproved),Html.EditorFor(x =>x.FirstName),还有Html.Display("FirstName"),,Html.Label("FirstName"),Html.LabelFor(x=> x.FirstName),Html.DisplayText("FirstName"), Html.DisplayTextFor(x =>x.FirstName)可以使用。如果想了解个清楚的话,可以自行尝试。建议大家都使用强类型的表示,可以减少错误。
追问
我没明白你在说什么啊?可以详细点么?最好举个例子什么的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式