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

ASP.NET MVC C#应用自定义路由访问/Users/Login返回404错误如何解决

问题根因排查

  • 核心问题1:仅存在POST类型的Login Action,无法响应GET请求
    你当前UsersController中仅定义了标记[HttpPost]的Login方法,仅能处理登录表单提交的POST请求。而浏览器直接访问/Users/Login、页面跳转链接的请求都是GET类型,没有对应Action响应,自然返回404。
  • 问题2:路由配置冗余且匹配顺序可能错误
    你自定义的Login路由规则和ASP.NET MVC默认路由规则完全一致,没有实际作用。如果该路由写在默认路由的下方,会被优先级更高的默认路由拦截,自定义规则完全不生效。
  • 其他可能原因:视图路径错误、缺失目标Action
    1. Login.cshtml未放置在正确路径:需确认文件放在~/Views/Users/Login.cshtml位置
    2. 登录成功后跳转的UserDashBoard未定义对应Action,也可能跳转后返回404

解决方法

  1. 新增GET类型的Login Action
    在UsersController中添加无参数的GET登录方法:
// GET: Users/Login
public ActionResult Login()
{
    return View();
}

原有POST类型的Login方法无需修改。

  1. 优化路由配置
    两种方案二选一即可:
  • 方案1:删除你自定义的Login路由,使用默认路由即可匹配/Users/Login的访问请求,无需额外定义规则
  • 方案2:如果要保留自定义路由,需将该路由移动到RouteConfig.cs中所有路由的最顶部,保证优先匹配。
  1. 补充校验
  • 确认UserDashBoard Action已在对应Controller中定义,且存在对应视图
  • 确认UsersController类的访问修饰符为public

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:09:01