如何使用Durandal.js,mvc3的部分视图

Jam*_*mes 4 asp.net-mvc durandal

我注意到App/views文件夹中的所有视图都是html类型,而不是cshtml.我如何使用我习惯的部分视图和mvc3等剃须刀?

Eva*_*sen 11

Durandal旨在创建一个完全位于一个页面内的应用程序.好处是用户体验就像桌面应用程序一样.此外,这允许应用程序轻松移植到phonegap,它可以作为本机移动应用程序存在,甚至可以使用appjs移植到桌面应用程序.

通过将整个应用程序作为html,js和css文件,您可以将整个应用程序压缩/缩小/ uglify为一个文件,并让服务器为整个应用程序提供服务.然后应用程序只调用Web服务来获取其数据.这可能是一个mvc控制器,一个web api,或一些返回数据的web服务.您可以使用此数据绑定到浏览器模板并生成要显示的视图.

您还可以使用混合应用程序,其中您的服务器可以为多个durandal SPA提供服务,然后您将拥有一个由单个站点提供服务的应用程序集合.

我看到许多人来自MVC背景,问我为什么不能将CSHTML文件用于我的HTML.简短的回答是你可以,但你这样做会失去很多好处.当您让服务器呈现您的html文件时,您不再可以压缩/缩小/ uglify您的整个应用程序,因为您依靠服务器为您生成html.

如果您更喜欢cshtml,那么传统上这是一个AJAX丰富的应用程序,其中您的用户调用某些uri,服务器根据某些数据生成HTML,将呈现的html发送回用户,将其粘贴到屏幕中的某个位置.通过这个过程,您拥有的是一个AJAX丰富的站点,但不是SPA.您失去了使此应用程序成为本机移动应用程序甚至桌面应用程序的能力.