asp.net-mvc-3 – 默认模型绑定器没有绑定到字段的原因是什么?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 默认模型绑定器没有绑定到字段的原因是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用ASP.NET MVC3,我想知道默认的模型绑定器绑定到公共属性,但不绑定到公共字段.

通常我只是用属性定义模型类,但有时我使用一些包含一些字段的预定义类.每次我必须调试并记住模型绑定器只是不喜欢字段.

问题:背后的原因是什么?

解决方法

but sometimes i use some predefined classes which contains some fields

虽然我无法回答你关于默认模型绑定器仅适用于属性的确切原因的问题(我的猜测是它以这种方式尊重更好的封装并避免修改对象的内部状态,这是字段所代表的)我可以说你是什么调用预定义类通常应该是视图模型.您应始终在控制器操作中使用视图模型.这些视图模型是专门定义的类,以满足给定视图的要求.

所以回到主要观点:字段应该只在给定的类中修改.不应该直接从外面访问它们.它们代表并保持着班级的内部状态.另一方面,属性应该是暴露给外部世界的.想象一下,在属性getter / setter中你有一些自定义逻辑.通过直接修改字段,此自定义逻辑将被破坏,并可能使对象进入不一致状态.

猜你在找的asp.Net相关文章