.NET webapp using knockout + webApi:我应该也保留 Razor 语法还是只使用 html 文件?

Posted

技术标签:

【中文标题】.NET webapp using knockout + webApi:我应该也保留 Razor 语法还是只使用 html 文件?【英文标题】:.NET webapp using knockout + webApi: should I also leave Razor syntax or use only html files? 【发布时间】:2018-10-19 08:06:49 【问题描述】:

我将使用 .NET 创建一个 Web 应用程序。 我选择使用Knockout 作为前端和服务我将使用WebApi

我见过两种方法:

1) 仅使用html 文件;在这种情况下,从未使用过 Razor 语法

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

在这种情况下,第一次调用将通过 MVC 控制器,它将加载 cshtml 文件和适当的 Knockout 模型(将使用 webapi 服务)。我说的对吗?

哪种方法更好?

附:从淘汰赛的角度来看,我想按照这个例子中的描述来使用它:http://learn.knockoutjs.com/WebmailExampleStandalone.html#Spam/52

【问题讨论】:

【参考方案1】:

根据我的经验,我觉得你应该只将.cshtml 作为外壳/容器,所有视图都应该在HTML 中,这在性能方面会更好,因为HTML 会缓存在客户端浏览器中。

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

如果您有一个单页应用程序 (SPA),这种方法真的很有效,您使用任何路由引擎来加载您的视图/部分 (html)。

【讨论】:

我不确定我理解“shell”的正确含义。它类似于第一页(包装器、容器)?以及如何将其他 html 文件包含到这个 shell 中? 我可以举一个 angularjs 的例子,你的 chtml 将只包含包和一个标签用于查看,其中 html 将由路由引擎作为部分加载 查看***.com/questions/9705078/… 谢谢。基本上这意味着我必须使用一些客户端路由库? 会很好,它将使您的应用程序模块化且易于维护

以上是关于.NET webapp using knockout + webApi:我应该也保留 Razor 语法还是只使用 html 文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用VSCode创建简单的Razor Webapp--2.添加模型

流分析服务和 WebApp 服务之间的数据流 (.NET core 3.1)

在使用 Entity Framework 进行数据库迁移期间,如何避免 .NET 5 WebApp 中出现 Windows 服务错误 1053?

webapp部署到tomcat服务器

ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行

Andriod使用WebView制作webAPP