You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 3.1访问UserRoles视图出现404错误求助

解决ASP.NET Web应用访问视图404错误的方案

问题原因

你当前的Startup.cs仅配置了API控制器的属性路由(MapControllers())和Razor页面路由(MapRazorPages()),但缺少MVC控制器的路由映射规则。返回视图的UserRolesController属于MVC控制器,需要对应的路由配置才能被正确解析。

修复方案

1. 确认控制器定义

确保UserRolesController继承自Controller(而非API控制器用的ControllerBase),并包含返回视图的Index动作:

public class UserRolesController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

2. 配置MVC路由

修改Startup.cs中UseEndpoints的配置,添加MVC默认路由:

app.UseEndpoints(endpoints =>
{
    endpoints.MapRazorPages();
    // 添加MVC默认路由规则
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    // 若需保留API控制器的属性路由,可保留此行
    endpoints.MapControllers();
});

如果偏好使用属性路由,也可以直接在控制器和动作上添加[Route]特性:

[Route("UserRoles")]
public class UserRolesController : Controller
{
    [Route("")] // 匹配访问路径/UserRoles
    [Route("Index")] // 匹配访问路径/UserRoles/Index
    public IActionResult Index()
    {
        return View();
    }
}

这种情况下无需修改路由端点配置,保留endpoints.MapControllers()即可,但需确保控制器继承自Controller。

3. 验证视图文件配置

检查Views/UserRoles/Index.cshtml的生成操作是否设置为Content(右键文件→属性→生成操作),确保文件能被项目正确识别。

4. 重启项目

清理项目后重新生成并启动,再次访问localhost:5001/UserRoles即可。

内容的提问来源于stack exchange,提问作者SoftwareDveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:05:23