IView在渲染视图中的作用

时间:2014-04-27 16:18:38

标签: asp.net-mvc asp.net-mvc-4

当视图引擎尝试将视图请求转换为IView个对象时,ViewEngineResult的作用是什么?

2 个答案:

答案 0 :(得分:1)

好的,经过一番挖掘,这就是我认为正在发生的事情。如果我错了,请纠正我:

当处理ViewResult时,动作调用者将检索已安装的视图引擎集并调用其FindView方法。内部视图引擎会将对视图的请求转换为ViewEngineResult个对象。 ViewEngineResult对象返回View(如果存在)或者它搜索合适视图的位置列表。

如果视图引擎是Razor,则视图请求将映射到编译类的实例,其路径编码为类名。这些类派生自WebViewPage<T>类,并覆盖WebViewPage类的Execute方法。 HTML元素由WriteLiteral方法内的Execute方法处理,针对其他元素的Write方法处理。 WriteLiteralWrite方法将内容传递给TextWrite r对象,然后传递给IView.Render方法。 MVC框架调用render方法,输出通过TextWriter方法的render参数写入客户端。

答案 1 :(得分:0)

一个级别,为这部分代码编写模拟会变得容易得多。此外,视图可以是实现IView的任何视图,允许自定义视图和可能自定义的视图引擎。如果需要,它为使用框架的开发人员提供了更高级别的灵活性。