model
这是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++做不到的。