我需要根据用户在表单内的下拉框中所做的选择来更改表单的操作,我在 .NET 4.5 上有一个 MVC4/C# 项目
用户做出的选择将影响需要调用哪个控制器或哪个动作。
我做了一些搜索,我得出了一些解决方案:
- 实现 JQuery 客户端以动态更改表单的操作
- 让表单转到专用于将请求路由到适当的控制器/操作的特定操作
根据我的阅读,人们建议不要使用 JQuery,因为您不能确定客户端正在运行 javascript,以及类似的问题。
我一直在玩我的第二个选项,我一直在尝试使用RedirectToAction
在 switch 块内执行路由,但是它不适用于 POST 数据,因为重定向会导致 GET。
我在控制器内部尝试的示例如下:
[HttpPost]
public ActionResult Index(TestObject object)
{
switch (object.Type) {
case("A"):
return RedirectToAction("ActionA");
case ("B"):
return RedirectToAction("ActionB");
case ("C"):
return RedirectToAction("ActionC");
default:
ModelState.AddModelError("", "Invalid Type");
return View();
}
}
[HttpPost]
public ActionResult ActionA(TestObject object)
{
// Do Stuff for ActionA
return View();
}
这是我创建的第一个 MVC 项目,所以我想知道如果每个人都说在这种情况下不要使用 JQuery,那么什么才是正确的方法。
如果第二个选项是“正确”的解决方案,我该如何将数据发送到备用控制器操作?