我刚读了this blog post在 Razor 模板 在 ASP.NET MVC 3 中。
简而言之,我就是不明白!
也就是说,我不明白为什么我们需要这个(相当)复杂的代码来实现 IMO 可以通过 @RenderPartial
更轻松(和更整洁)完成的事情?
这是我不喜欢的:
Func<T,HelperResult>
代表? 我从该博客中读到的唯一“好处”是模板不需要单独的文件,这意味着您不需要重新编译等。
但我不认为这是一个有效的论点。只要解决方案组织不受影响,额外的文件就可以了。
我更喜欢使用
@RenderPartial
,因为我可以将我的标记与主视图分开,并且我可以内联(渲染时间)和使用 jQuery(例如 AJAX 事件)渲染它。也许我在这里遗漏了一些东西,但是任何人都可以给出一些理由为什么我们应该选择 Razor 模板而不是 RenderPartial 来创建可重用的内容?
最佳答案
好吧,您应该向那篇文章的作者询问他展示这种技术的动机。
它无疑说明了 Razor 中的可能性。你是否应该使用它是另一回事。我个人认为有一些不太复杂的替代技术(我同意你关于在请求上下文中存储 Func
的观点)。
@RenderPartial
你已经提到过。 @helper
语法(作为本地助手或全局助手)TagBuilder
来组装输出)现在我查看了上面的列表,我认为 MVC 可能提供了太多的选择 :)
更新 为了更好地说明内联模板如何有用,我写了一篇关于使用它们调用默认代码的部分的博客文章:Optional Razor Sections with Default Content .
你可以用它来写这样的东西:
@this.RenderSection("OptionalSection", @<div>Default Content</div>)
关于asp.net-mvc - ASP.NET MVC 3 Razor 模板 VS RenderPartial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383554/