.NET webapp使用敲除和#x2B;webApi:我应该保留Razor语法还是只使用html文件?

.NET webapp使用敲除和#x2B;webApi:我应该保留Razor语法还是只使用html文件?,.net,knockout.js,asp.net-web-api2,.net,Knockout.js,Asp.net Web Api2,我将使用.NET创建一个web应用程序。 我已经选择使用Knockout作为前端,对于服务,我将使用WebApi 我看到了两种方法: 1) 仅使用html文件;在这种情况下,不会使用Razor语法 vs 2) 使用“cshtml”文件;在这种情况下,大多数情况下都会使用剔除html标记,但有时也可以使用一些类似的东西。我不确定这是否有用,但我想有时可能有用 在本例中,第一个调用将通过MVC控制器进行,该控制器将加载cshtml文件和适当的淘汰模型(将使用webapi服务)。我说得对吗 哪种方法更

我将使用.NET创建一个web应用程序。 我已经选择使用
Knockout
作为前端,对于服务,我将使用
WebApi

我看到了两种方法:

1) 仅使用
html
文件;在这种情况下,不会使用Razor语法

vs

2) 使用“cshtml”文件;在这种情况下,大多数情况下都会使用剔除html标记,但有时也可以使用一些类似的东西。我不确定这是否有用,但我想有时可能有用

在本例中,第一个调用将通过MVC控制器进行,该控制器将加载cshtml文件和适当的淘汰模型(将使用webapi服务)。我说得对吗

哪种方法更好


另一方面,从淘汰的角度来看,我希望按照本例中所述使用它:

根据我的经验,我觉得您应该将
.cshtml
仅作为shell/container,所有视图都应该在
HTML
中,这将在性能方面更好,因为
HTML
缓存在客户端浏览器中

当您将
.cshtml
作为一个shell时,您将对应用程序拥有更多的控制权,并且您可以轻松地在服务器端实现捆绑、缩小、安全性、日志记录等功能


如果您有一个单页应用程序(
SPA
),您可以使用任何路由引擎加载视图/部分(html),那么这种方法非常有效。

我不确定我是否理解“shell”的正确含义。它有点像第一页(包装器、容器)?我可以举一个angularjs的例子,在这个示例中,您的chtml将只保存bundle和一个标签以供查看,其中html将由路由引擎作为部分加载选中此项谢谢。基本上这意味着我必须使用一些客户端路由库?这将是好的,它将使您的应用程序模块化,易于维护