.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?