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

使用Html.BeginForm提交数据无法重定向至Action方法的问题求助

解决MVC中Html.BeginForm提交后无法重定向的问题

你遇到的问题核心是Html.BeginForm的控制器参数写法错误,这是MVC开发里非常常见的小误区,咱们一步步梳理解决:

1. 修正BeginForm的调用代码

你当前的代码是:

@using (Html.BeginForm("SubmitEmp","ClientController",FormMethod.Post))

这里的问题在于,MVC的Html.BeginForm方法中,控制器名称不需要加Controller后缀!正确的写法应该是:

@using (Html.BeginForm("SubmitEmp", "Client", FormMethod.Post))

框架会自动在你传入的名称后拼接Controller来查找对应的类,手动加后缀的话,框架会去找ClientControllerController这个不存在的类,自然无法正确提交到目标方法。

2. 确保控制器方法正确处理重定向

接下来检查你的ClientController里的SubmitEmp方法,必须返回正确的重定向结果才能跳转到目标视图。比如如果你的显示数据视图叫ShowEmp,方法应该类似这样:

[HttpPost]
public ActionResult SubmitEmp(EmployeeModel model)
{
    // 处理表单提交的数据,比如保存到数据库
    // ...

    // 重定向到显示数据的视图对应的方法
    return RedirectToAction("ShowEmp", model);
    // 若ShowEmp需要特定参数,也可以传递路由值
    // return RedirectToAction("ShowEmp", new { id = model.Id });
}

// 对应的显示数据方法
public ActionResult ShowEmp(EmployeeModel model)
{
    // 准备视图所需数据
    return View(model);
}

注意:如果直接用return View("ShowEmp", model),虽然能显示视图,但浏览器地址栏仍停留在SubmitEmp的路径,不是真正的重定向,建议用RedirectToAction实现完整的重定向流程。

3. 确认视图文件夹结构

你的视图放在Client文件夹下,这符合MVC的约定(控制器名称对应视图文件夹),只要ShowEmp.cshtml在Views/Client目录下,就能被正确找到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:22:58