强类型View相关概念

来源:互联网 发布:javascript 对象数组 编辑:程序博客网 时间:2024/06/06 01:49
“使用强类型View传递数据到View”对应的概念是“使用ViewData传递数据到View”,即a Strongly-Typed View与a weakly-typed dictionary 

现在ASP.NET MVC中普遍使用强类型的View,即指定View中的Model的类型。

创建一个强类型的View,两种方式,第一种是在创建View的对话框中,勾选create a strongly-typed view,然后选择相应的Model class,可以发现,在创建的View页面上边会有一行代码@model Weapsy.Web.Models.Home.UserModel;

 第二种是没有勾选create a strongly-typed view,而是在View创建后手动在Viewe页面写上@model Weapsy.Web.Models.Home.UserModel,两种方式的作用是一样的。

非强类型的View继承自System.Web.Mvc.ViewPage<object>,而强类型的View继承自System.Web.Mvc.ViewPage<UserModel>.以往非强类型的View,一般是把UserModel以object的方式存到View的Model属性中,然后再View中强制转换。或者把UserModel放到View的ViewData属性中,然后再View中获取并且强制转换。使用强类型的好处就是,省去了自己UserModel model = Model as UserModel的过程,在编写代码的时候智能提示很方便。而且,这个在Model很复杂的时候,比如说,Model中含有很多List的时候,相比于飞强类型的Model来讲,代码的简洁是非常明显的。以前放到ViewData中,是因为是Dictionary类型,所以,在编译的时候,如果属性name拼写错误,是检查不出来的。必须runtime的时候才能发现。所以,相比这个,strong typed view有很大的优势。

原创粉丝点击