我有一个asp.net热毛巾SPA应用程序,我想同时使用.html和.cshtml页面。
是否可以添加多个viewExtensions:
viewEngine.viewExtension = '.cshtml';
viewEngine.viewExtension = '.html';发布于 2013-03-16 19:54:32
viewExtension不是数组,所以在开始时,您不能设置多个viewExtensions。当然,这只是javascript,你可以进入源代码并从核心的Durandal应用程序文件夹(链接在这里:https://github.com/BlueSpire/Durandal/blob/master/App/durandal/viewEngine.js)中更改viewEngine.js。
也就是说,如果客户端下载一个*.cshtml文件,剃刀语法将不会以您认为的方式呈现。如果服务器提供*.cshtml视图,那么它将在传递给客户端之前被呈现。如果您正在寻找使用Durandal进行动态视图呈现,那么最好的方法是覆盖viewEngine中的一个或两个函数,即: viewEngine.convertViewIdToRequirePath(viewId):string和进一步的viewEngine.createView(viewId):promise。
欲了解更多信息,请查看此链接:Routing and Leveraging Dynamic Content in DurandalJS
发布于 2013-03-19 07:15:59
看看这个要点:https://gist.github.com/irium/5191764
这是我自己对类似问题的解决方案。这些是对Durandal的viewEngine和viewLocator的定制。在您的shell模块中导入此模块并运行customizeViewEngine()和customizeViewLocator()函数。之后,带有.html扩展的视图将像以前一样被处理,但是.cshtml视图将被从远程服务器请求。但请记住:由于Durandal的视图缓存,这只会执行一次。相同视图的所有后续请求都将在客户端使用缓存版本。这可以通过手动从RequireJS取消注册视图模块来更改,但这超出了我的需求范围
这是编译成JavaScript的CoffeScript代码,但我希望您能理解,我的代码会对您有所帮助。
https://stackoverflow.com/questions/15421195
复制相似问题