Dynamic类型

在说数据之前得先了解一下什么是Dynamic类型。根据微软MSDN的解释是说绝大部分情况下和Object是一样的,唯一的差别是Object在编译会解析或类型检查,而Dynamic不会,所以最学出错的是一但对Dynamic不正确类型转换只能等待异常。

另一点是网上很多文章都是在将Dynamic和var进行比较,那都是狗屎,这分明两个完全不一样的东西。

Collection向Value传值

包括ViewBag、ViewData、Model三种类型,至于ViewTemp采用是Session作为传递,不加于考虑差别。

ViewData:实际是一个 Dictionary<string, object> 数据集合。

ViewBag:数据依然存入ViewData,只不过当需要从ViewBag获取数据时并转化之,其核心是Dynamic;换句话说动态的将ViewData中的数据转换成Dynamic对象,倒置我们可以语句更优美罢了。

另:ViewData["now"] = DateTime.Now; 同样在View端可以直接用 ViewBag.now。故而他们是同一个数据源。

Model:并无特别之处,只是将数据做为强类型使用,不过是最优美的编码风格。推荐之。

视图调用

这里会有四种调用方式,Html.Partial、Html.RenderPartial、Html.Action、Html.RenderAction。理论上这四种是没有太大差别的,只不过在操作性上感觉比较自由而已。

为何这么讲,其原因是不管采用哪种方式,你大可直接调用静态方法来处理逻辑处理,所以我才会说没有太大差别。虽然有点鸡蛋里挑骨头。