ASP.NET Core MVC中无法在浏览器显示Razor视图(出现404页面未找到错误)
嘿,刚仔细看了你的代码,马上发现了导致404错误的核心问题,咱们一步步来解决:
1. 控制器名称与导航链接不匹配
你的导航栏里写的是:
<a class="nav-link text-dark" asp-area="" asp-controller="CasaSelecta" asp-action="Index">Liste des habitats</a>
但实际的控制器类是HabitatsController——在ASP.NET Core MVC中,控制器名称是类名去掉Controller后缀,所以正确的控制器名称应该是Habitats,不是CasaSelecta。
修改方法:把导航链接里的asp-controller值改成Habitats:
<a class="nav-link text-dark" asp-area="" asp-controller="Habitats" asp-action="Index">Liste des habitats</a>
2. 确认视图文件存在且路径正确
你的HabitatsController的Index方法返回了视图,需要确保你的项目里存在对应的视图文件:
- 路径:
Views/Habitats/Index.cshtml - 文件名要和控制器方法名完全匹配(Windows系统大小写不敏感,但Linux/macOS下要注意大小写一致)
如果这个文件不存在,创建它并添加基础的视图代码(比如遍历展示HabitatClass列表)。
3. 检查默认路由配置
确保你的Program.cs里配置了默认的MVC路由,这样请求才能正确映射到控制器和方法:
app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
如果路由被修改过,可能会导致请求无法匹配,恢复这个默认路由就能解决大部分路由问题。
4. 额外检查:数据库上下文的注册
虽然这不是直接导致404的原因,但如果DbContClass没有被正确注册为服务,控制器的构造函数注入会失败,进而引发其他错误。确认Program.cs里有类似的代码:
builder.Services.AddDbContext<DbContClass>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("YourConnectionStringName")));
记得把YourConnectionStringName替换成你appsettings.json里实际的连接字符串名称。
做完这些修改后,清理浏览器缓存或者用隐私模式打开页面,应该就能正常访问Liste des habitats页面了。
内容的提问来源于stack exchange,提问作者Anass Hadeg
相关产品推荐
相关产品推荐

