在同一个ASP.NET Core 2.0应用中混合使用Razor Pages
和Razor Views
是不是一个好主意?
如果我理解正确,使用Razor Pages
的好处是他们不需要控制器操作。在我的应用程序中,我有一些页面只返回一个React应用程序。我觉得Razor Pages
非常适合这一点,因为我在页面中只需要一个指向bundle.js
文件的链接。
话虽如此,我确实有几页需要控制器并发送视图模型。
那么,拥有两个页面和视图是一个好主意,还是应该坚持一个而不是将它们混合在一起?
答案 0 :(得分:6)
最近阅读docs中的Razor Pages和Rick Anderson(ASP.Core团队成员)在这里说:
您可以混合使用控制器,视图和Razor页面。 RP是可单元测试的 (使用代码隐藏)。这是一个很好的问题。看到 https://github.com/aspnet/Mvc/issues/494#issuecomment-232534742 动机。
所以你可以混合。在我看来,我从文档中读到的唯一一个小问题是:
注意:布局位于Pages文件夹中。页面寻找其他视图 (布局,模板,局部)分层次地,从同一个开始 文件夹作为当前页面。这意味着Pages中的布局 文件夹可以在Pages文件夹下的任何Razor页面中使用。
这意味着你不能为Razor Page和View开箱即用,同时不修改ASP约定或编写一些自定义解决方案,以便为Razor Page和Razor Page使用相同的布局,模板,局部视图。否则混合它们看起来非常好。