当视图引擎尝试将视图请求转换为IView
个对象时,ViewEngineResult
的作用是什么?
答案 0 :(得分:1)
好的,经过一番挖掘,这就是我认为正在发生的事情。如果我错了,请纠正我:
当处理ViewResult
时,动作调用者将检索已安装的视图引擎集并调用其FindView
方法。内部视图引擎会将对视图的请求转换为ViewEngineResult
个对象。 ViewEngineResult对象返回View
(如果存在)或者它搜索合适视图的位置列表。
如果视图引擎是Razor,则视图请求将映射到编译类的实例,其路径编码为类名。这些类派生自WebViewPage<T>
类,并覆盖WebViewPage
类的Execute方法。 HTML元素由WriteLiteral
方法内的Execute
方法处理,针对其他元素的Write
方法处理。 WriteLiteral
和Write
方法将内容传递给TextWrite
r对象,然后传递给IView.Render方法。 MVC框架调用render
方法,输出通过TextWriter
方法的render
参数写入客户端。
答案 1 :(得分:0)
一个级别,为这部分代码编写模拟会变得容易得多。此外,视图可以是实现IView的任何视图,允许自定义视图和可能自定义的视图引擎。如果需要,它为使用框架的开发人员提供了更高级别的灵活性。