剃刀页面和剃刀视图

时间:2017-08-18 04:48:10

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

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

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

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

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

1 个答案:

答案 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使用相同的布局,模板,局部视图。否则混合它们看起来非常好。