MVC和同一项目.net核心中的剃刀页面区域
Posted
技术标签:
【中文标题】MVC和同一项目.net核心中的剃刀页面区域【英文标题】:MVC and areas of razor pages in same project .net core 【发布时间】:2021-09-18 00:03:46 【问题描述】:我在 MVC 项目中有一个区域。在区域部分,我在 .NET Core 中有 razor pages 项目。如何映射两条路线?当我访问https://localhost:44361/
时应该运行主项目,如果我访问https://localhost:44361/backend
则应该运行剃须刀页面区域。
【问题讨论】:
if I visit https://localhost:44361/backend then the area of razor pages should be run.
是什么意思endpoints.MapRazorPages();
时,表示配置了razor页面路由,在路由中加上Area name,就会去到该区域。
【参考方案1】:
由于 Razor 页面默认使用基于文件夹的路由,您可以创建文件夹 Pages/Backend,并使用如下所示的标准设置。
使用区域的相同解决方案:创建文件夹 Areas/Backend/Pages 并使用如下所示的设置。
在启动#ConfigureServices 中
services.AddControllers();
services.AddRazorPages();
在启动#配置中
app.UseEndpoints(endpoints =>
endpoints.MapRazorPages();
endpoints.MapControllers();
);
上述两种方法均通过创建 MVC 应用程序进行验证,并通过添加 services.AddRazorPages();
和 endpoints.MapRazorPages();
添加对 Razor 页面的支持。
有关区域的更多信息: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?view=aspnetcore-5.0#areas-with-razor-pages
【讨论】:
它在区域中不起作用。所有这些配置都已在 startup.cs 中定义,但仍无法正常工作 > 区域 > 后端 > 页面 edit.razor localhost:59722/backend/edit 仍然无法正常工作 @SameerUllah:我刚刚通过创建一个新的 MVC 应用程序验证了我的答案,然后添加了 services.AddRazorPages();和endpoints.MapRazorPages();,添加目录Pages/Backend,最后在Pages/Backend中添加了一个页面,它正在工作。我还通过添加目录 Areas/Backend/Pages 并在该目录中添加了一个页面来测试使用 Areas。它也可以在启动时没有任何更改。 BR以上是关于MVC和同一项目.net核心中的剃刀页面区域的主要内容,如果未能解决你的问题,请参考以下文章