在mvc4.0中,微软自带的强类型视图为开发带来了很多方便的之处,但是其自带的强类型视图,是怎么在前台直接用HtmlHelper获得到数据的呢,并不像我们自己写的空的非强类型的视图,需要使用ViewData 传递数据到前台,然后在前台页面进行强制类型的转换。
在自带的强类型的视图的前台页面中Inherits="System.Web.Mvc.ViewPage<命名空间.TModel>" 指定了数据的强制类型。在后台代码中通过 return View(类型对象); 将数据传到前台,而我们通过定义发现:
ViewPage<T> 继承自 ViewPage,
在ViewPaeg<T> 中定义了HtmlHelper<T>类型的 Html,
而HtmlHelper<T>继承自HtmlHelper ,
因此HtmlHelper<T> 类型的Html 可以在前台直接使用HtmlHelper定义的拓展方法,
而HtmlHelper的一些拓展方法符合 Func<T,返回值> 系列的委托类型。所以在前台使用 Html.拓展方法(T=>T.字段) 访问后台传递的对象的相关属性值。