为什么在创建Razor Pages项目时添加了app.UseMvc()?

时间:2019-03-21 11:33:20

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

我是ASP.NET CoreRazor的新手,如果这在某处异常明显,我深表歉意。

经过一些研究,我选择在MVC上使用Razor Pages,因为我认为这样做会有更多好处,并且喜欢页面模型等背后的代码的想法。我选择了ASP.NET Core Web Application-> Web Application并创建一个针对ASP.NET Core 2.2的新项目。

默认模板显示为创建“纯” RP项目-例如。 Pages文件夹,而不是MVC的Controller / Models / Views。

我真的很困惑,因为RP项目中仍然存在MVC的元素-例如。 app.useMvc()在Startup.cs中,包含_ViewStart.cshtml,并使用ViewData [“ x”]。

实际上,这很好,可以继续使用,但是遵循RP指南和假定的约定似乎很麻烦-例如。 _PageStart.cshtml在我的测试中实际上不起作用。

我要去哪里了-我是在读书还是太在乎呢?希望有人能启发我!预先感谢您尝试:)

1 个答案:

答案 0 :(得分:1)

剃须刀页面虽然不使用控制器,但实际上是mvc框架的一部分,需要您调用app.UseMvc()才能初始化其所需的一切,包括路由等。

您还可以使用UseMvc对应用程序进行一些配置:

 app.AddMvc()
    .AddRazorPagesOptions(options =>
        {
            options.Conventions.Add("options");
        });

有关更多信息,请访问https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-2.2