使用ASP.NET Core 7的Blazor Server是否需要调用MapRazorPages()?
Blazor Server 中
app.MapRazorPages() 的作用与配置说明 - 在ASP.NET Core 7的Blazor Server默认模板里,
app.MapRazorPages()确实不会自动生成到Program.cs里。这个方法的作用是注册Razor Pages的路由规则,让项目里的.cshtml页面能被正常访问。 - 你看到很多示例里有这个调用,主要两个原因:
一是部分示例属于混合场景——项目同时包含Blazor组件和Razor Pages(比如用Razor Pages做登录页、静态展示页);
二是这些示例可能基于旧版本ASP.NET Core(3.x/5/6)的模板,旧版Blazor Server模板默认会带app.MapRazorPages(),因为当时模板里自带了Razor Pages格式的错误页、身份验证页等内容。 - 要不要添加回去?看你的实际需求:
- 如果你的项目只用到
.razor格式的Blazor组件,完全不需要Razor Pages,那完全不用加,不会影响Blazor的正常运行。 - 如果需要在项目里新增
.cshtml页面(比如自定义静态页、整合旧的Razor Pages代码),那必须在Program.cs里加上app.MapRazorPages(),否则这些Razor Pages页面无法被路由匹配到。
- 如果你的项目只用到
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

