【问题标题】:Razor Pages and Razor ViewsRazor 页面和 Razor 视图
【发布时间】:2018-01-26 16:11:09
【问题描述】:

在同一个 ASP.NET Core 2.0 应用中混合 Razor PagesRazor Views 是否是个好主意?

如果我理解正确,使用Razor Pages 的好处是它们不需要控制器操作。在我的应用程序中,我有一些页面只是返回一个 React 应用程序。我觉得Razor Pages 非常适合这个,因为我在页面中需要的只是指向bundle.js 文件的链接。

话虽如此,我确实有几个页面需要控制器并发送视图模型。

那么,同时拥有页面和视图是一个好主意,还是我应该坚持一个而不将它们混合在一起?

【问题讨论】:

  • 你完全可以混合使用。如果这是一个好主意取决于您,但您描述应用程序的方式,听起来两者都有意义。所以只要选择对你有意义的东西。

标签: reactjs razor asp.net-core asp.net-core-2.0 razor-pages


【解决方案1】:

最近在docs 中阅读有关 Razor 页面的内容,Rick Anderson(ASP.Core 团队成员)在此表示:

您可以混合使用控制器、视图和 Razor 页面。 RP 是可单元测试的 (使用代码隐藏)。这是个好问题。看 https://github.com/aspnet/Mvc/issues/494#issuecomment-232534742 为 动机。

所以你可以混合。在我看来,我从文档中读到的唯一一个小问题是:

注意:布局位于 Pages 文件夹中。页面寻找其他视图 (布局,模板,部分)分层,从相同的开始 文件夹作为当前页面。这意味着页面中的布局 可以从 Pages 文件夹下的任何 Razor 页面使用该文件夹。

这意味着您不能对 Razor 页面和开箱即用的视图使用相同的布局、模板、部分,除非修改 ASP 约定或编写一些自定义解决方案来为 Razor 页面和视图使用相同的布局、模板、部分看法。否则混合它们看起来非常好。

【讨论】:

  • 如果你想在 Razor 页面和 Razor 视图之间共享布局,你可以简单地指定这些项目的完整路径。这可能比自动搜索 Views 层次结构和 Pages 层次结构更好。毕竟,有时你可能不想分享它们,如果它是自动的,你就会陷入困境。
猜你喜欢
  • 2020-12-30
  • 2018-02-24
  • 2019-06-28
  • 2019-09-24
  • 2019-10-05
  • 2021-04-22
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多