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

ASP.NET MVC表单提交出现404错误:路由配置与教程不符的问题排查咨询

解决表单提交404错误的方案

你的问题根源在于表单的action属性使用了相对路径"form1",当页面处于/Home/Index路径下时,这个相对路径会被解析为根目录下的/form1,而非期望的/Home/form1——你的默认路由配置是完全正确的,问题出在表单路径的定义上。

这里有几种可靠的解决方法:

方法1:使用Url.Action生成正确路径(推荐)

ASP.NET MVC提供的Url.Action辅助方法,能根据路由配置自动生成对应控制器和Action的URL,彻底避免硬编码路径的潜在问题。修改你的form标签:

<form action="@Url.Action("form1", "Home")" method="post">

这个方法会自动根据你的路由规则生成/Home/form1的路径,哪怕后续路由配置或控制器名称发生变更,也不需要手动修改这里的路径。

方法2:使用绝对路径(硬编码)

如果你不想用辅助方法,也可以直接写完整的控制器+Action路径:

<form action="/Home/form1" method="post">

不过这种方式属于硬编码,后续如果控制器名称修改,你需要手动更新这个路径,灵活性不如第一种方法。

额外建议:规范Action方法命名

虽然不影响功能,但按照C#的命名规范,建议将你的Action方法名改为首字母大写的Form1,同时在Url.Action里对应调整为"Form1",让代码风格更统一:

[HttpPost] 
public ActionResult Form1(int txtId, string txtName, string chkAddon) { 
    // 原有逻辑保持不变
}

对应的View里:

<form action="@Url.Action("Form1", "Home")" method="post">

这样修改后,表单提交时就会正确请求/Home/form1(或/Home/Form1),匹配到你HomeController里的Action方法,不会再出现404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:47:39