我刚读了这篇关于ASP.NET MVC 3中Razor模板的博客文章。
简单地说,我就是没明白!
也就是说,我不明白为什么我们需要这个(相当)复杂的代码来实现使用@RenderPartial
可以更容易(更整洁)实现的功能?
以下是我不喜欢的:
- 模板被存储为一个
Func<T,HelperResult>
委托? - 该模板委托被持久化在控制器的ViewData中(比如HttpContext.Current.Items)
从那篇博客中唯一的“好处”是,不需要为模板编写单独的文件,这意味着您不需要重新编译等操作。
但我认为这并不是一个有效的论点。只要解决方案组织没有受到影响,额外的文件是可以接受的。
我更喜欢使用@RenderPartial
,因为我可以将我的标记与主视图分开,并且我可以同时内联渲染(渲染时间)和使用jQuery(例如AJAX事件)进行渲染。
也许我在这里漏掉了什么,但是有人可以给出一些选择Razor模板而不是RenderPartial来创建可重用内容的原因吗?