.NET Core 6 API项目添加默认Razor首页空白问题求助
.NET Core 6 API项目添加Razor首页空白问题解决办法
别把index.cshtml扔到wwwroot里!Razor Pages是动态编译的页面,不是静态文件,默认得放在项目根目录的Pages文件夹下,这是第一个坑。接下来按这几步改:
调整文件位置与基础配置
- 在项目根目录新建
Pages文件夹 - 把你的
index.cshtml移进去,确保文件顶行保留@page "/" - 在
Pages里新建_ViewImports.cshtml,内容写:@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
(要是不需要布局页,再建个
_ViewStart.cshtml,里面写@{ Layout = null; }就行)- 在项目根目录新建
注册Razor Pages服务
打开Program.cs,在注册控制器服务的地方,加上Razor Pages的服务注册:builder.Services.AddControllers(); // 加这行,让项目知道要处理Razor Pages builder.Services.AddRazorPages();配置中间件路由
还是在Program.cs的中间件部分,在MapControllers()之后(或前后都行,只要在UseAuthorization()之后)加上路由映射:app.UseAuthorization(); app.MapControllers(); // 加这行,映射Razor Pages的路由规则 app.MapRazorPages();静态文件配置(可选)
之前的自定义静态文件配置可以保留,也可以直接用默认的app.UseStaticFiles()——默认已经指向wwwroot,不影响Razor Pages运行。
做完这些再启动项目,浏览器就能正常加载你的Razor首页了。核心问题就是API模板默认没启用Razor Pages的服务和路由,而且你把页面放错了位置。
内容的提问来源于stack exchange,提问作者iaacp
相关产品推荐
相关产品推荐

