ASP.NET MVC 2是否可以将视图呈现为jQuery-tmpl模板?

8
我喜欢微软开发的新jQuery插件Templates和DataLinking的想法,实际上在我的日常工作中有一个需要,它们可能会证明很有价值。问题是,我需要模板化的html是利用MVC 2框架内置和自定义的Html helper方法的非平凡html。此外,还有基于绑定ViewModel的值的条件渲染。
我可以忠实地从MVC视图语法复制渲染逻辑到jquery-tmpl语法中,这将包括找出所使用的所有MVC helper函数生成的所有HTML。然而,这既费时又繁琐。更不用说其他问题,如服务器端和客户端验证以及其他HTML帮助器函数,例如AntiForgeryToken(),虽然通过聪明地限制jquery-tmpl使用,这些问题可能可以避免。
我想知道,我们是否可以利用已经定义的MVC局部视图的逻辑和结构,使其呈现jquery-tmpl模板而不是直接HTML?乍一看,似乎只是将MVC视图语法转换为jQuery-tmpl语法,保留所有循环、条件等。
这是可能的吗?我并不完全了解MVC框架,但我知道它提供了很好的可扩展性。如果解决了这个情况,似乎会很有价值,对吗?还是我想错了?有什么想法或建议吗?

这种功能将会非常棒! - John Farrell
我对这个想法非常感兴趣...我自己也考虑过。你能否发布更多关于它如何运作的信息?也许一些代码和不同的路径流程,用于正常的HTML渲染和jQuery-tmpl渲染...?谢了。 - Charlino
2个回答

1

看起来你可能想将其实现为自定义的ViewEngine。在MVC中,ViewEngines是可插拔的。JQuery-Tmpl ViewEngine可能只会使用JSON与服务器通信。模板标记的块也可以作为响应消息中子属性的值呈现给ViewEngine。然后,ViewEngine的工作就是渲染模板并将它们放置到区域目标中等等。听起来有点熟悉.. ;)


控制器是否可以按需交换ViewEngines?自定义ViewEngine是我的第一个想法,但我不确定它们的使用有多灵活。我相信您可以在每个控制器上关联不同的ViewEngines,但我们希望即使在控制器内部也具有灵活性,对吗? - kdawg

0

MVC 3 允许您在同一站点中使用多个 ViewEngines。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接