model

wrost 2012-10-03 09:16:21
这是model里边的内容,Required 我知道是 必须填的字段,如果不填,就会报错。
[Display(Name = "账号")] 是什么用呢?



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


...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrost 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

更像是给类或者类的成员贴的“标签”。这个标签是给动态加载或者调用它们的调用者准备的,让它们更好地理解这个对象或者字段的含义、用途。

和C/C++不同,C#或者说.NET中的对象或者函数,都是自描述的,也就是说,程序中包含了对程序自身的描述信息。你甚至不需要文档,就可以得知一个库有什么功能,这是C/C++做不到的。
[/Quote]

嗯,谢谢,我在实践中再去加深理解。
threenewbee 2012-10-03
  • 打赏
  • 举报
回复
更像是给类或者类的成员贴的“标签”。这个标签是给动态加载或者调用它们的调用者准备的,让它们更好地理解这个对象或者字段的含义、用途。

和C/C++不同,C#或者说.NET中的对象或者函数,都是自描述的,也就是说,程序中包含了对程序自身的描述信息。你甚至不需要文档,就可以得知一个库有什么功能,这是C/C++做不到的。
wrost 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]



写在Arrtibute中的类型必须从Attribute类继承,显然DataType.Password应该是个枚举,所以不行。

[/Quote]

哦,就是把 DataType.Password类型数据 强制转换成 DataTypeAttribute类型数据。 他们2个名字都一样,所以开始让人很费解。

谢谢 :)
wrost 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

反射可以获得任意类型附加的attribute,这里指你的模型类。
[/Quote]

一个类可以有属性; 这里反射,相当于类“也有”这些附加的属性了,对吧?
threenewbee 2012-10-03
  • 打赏
  • 举报
回复
反射可以获得任意类型附加的attribute,这里指你的模型类。
wrost 2012-10-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

[]这种写法叫Attribute,供反射调用的时候查询。

写在Arrtibute中的类型必须从Attribute类继承,显然DataType.Password应该是个枚举,所以不行。

具体这些Attribute能做什么,取决于调用它的类,比如Model.xxxFor方法,它会去读取Model中对象的Attribute,并且产生对应的html和js代码。ASP.NET MVC是开放源代……
[/Quote]

这里的反射,是指反射到controller、view上边吗?
threenewbee 2012-10-03
  • 打赏
  • 举报
回复
[]这种写法叫Attribute,供反射调用的时候查询。

写在Arrtibute中的类型必须从Attribute类继承,显然DataType.Password应该是个枚举,所以不行。

具体这些Attribute能做什么,取决于调用它的类,比如Model.xxxFor方法,它会去读取Model中对象的Attribute,并且产生对应的html和js代码。ASP.NET MVC是开放源代码的,如果有兴趣,你可以用attribute类名作为条件在代码中搜索。
wrost 2012-10-03
  • 打赏
  • 举报
回复
还有就是 [DataType(DataType.Password)] ,是类型限制,[DataType.Password] 这样写行吗?
课程介绍本套课程,大喵将带着大家手把手,编辑每一行代码,使用原生Javascipt及ES6的一些新特性,仿照目前国内非常流行的Vue框架的源码,开发构建一个属于你们自己的MVVM框架。让大家能够很清晰的学习及掌握,模板编译,数据绑定,响应式,文档碎片,观察者模式,发布订阅模式等等,这些Vue的核心知识点,都是怎么回事,它们之间有哪些关联,是如何进行双向数据绑定的等等。在使用vue2.x的核心Object.defineProperty构建完成框架后,大喵也会使用Vue3.0引入的数据劫持的Proxy新特性,来改造我们的MVVM框架,提升我们的框架性能。最终,大喵会手把手带着大家,从0开始配置webpack.config.js配置文件以及引入babel-loader,配置.babelrc文件,转换我们JS文件中的的ES6语法,最终压缩输出我们的MVVM框架库文件。课程目录01 手把手搭建MVVM框架 课程介绍、02 文件结构及基础类创建、03 入口类DamiaoMvvm的实现、04 模板编译、05 元素节点解析编译、06 v-model 数据绑定逻辑梳理、07 v-model 数据绑定实现、08 模板文本编译逻辑梳理、09 模板文本渲染绑定、10 观察者Wather逻辑梳理、11 Wather 逻辑实现、12 Object.defineProperty()、13 defineProperty 小案例、14 observer数据劫持梳理、15 defineProperty数据劫持实现、16 发布订阅类实现、17 Proxy 介绍与概述、18 使用Proxy改造MVVM框架、19 使用Proxy实现响应式、20 webpack 打包配置、21 babel 配置及文件输出、22 Mvvm Proxy 框架打包、23 Mvvm 框架搭建课程总结MVVM框架介绍MVVM是 Model-View-ViewModel 的缩写。mvvm是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。在MVVM架构模式下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

61,651

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧