这是model里边的内容,Required 我知道是 必须填的字段,如果不填,就会报错。
[Display(Name = "账号")] 是什么用呢?
- C# code
public class LogOnModel { [Required] [Display(Name = "账号")] public string UserName { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "密码")] public string Password { get; set; } [Display(Name = "登录信息")] public bool RememberMe { get; set; } }
------解决方案--------------------------------------------------------
[]这种写法叫Attribute,供反射调用的时候查询。
写在Arrtibute中的类型必须从Attribute类继承,显然DataType.Password应该是个枚举,所以不行。
具体这些Attribute能做什么,取决于调用它的类,比如Model.xxxFor方法,它会去读取Model中对象的Attribute,并且产生对应的html和js代码。ASP.NET MVC是开放源代码的,如果有兴趣,你可以用attribute类名作为条件在代码中搜索。
------解决方案--------------------------------------------------------
反射可以获得任意类型附加的attribute,这里指你的模型类。
------解决方案--------------------------------------------------------
更像是给类或者类的成员贴的“标签”。这个标签是给动态加载或者调用它们的调用者准备的,让它们更好地理解这个对象或者字段的含义、用途。
和C/C++不同,C#或者说.NET中的对象或者函数,都是自描述的,也就是说,程序中包含了对程序自身的描述信息。你甚至不需要文档,就可以得知一个库有什么功能,这是C/C++做不到的。