现在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有很大的优势。