重定向HTML.BeginForm MVC 4的问题

Redirect issue with HTML.BeginForm MVC 4

本文关键字:问题 MVC HTML BeginForm 重定向      更新时间:2023-09-26

我有以下问题(可能正在寻找不同的方法)。我有一个表格,我发送给一个邮政管理员,返回无效。我的表格使用以下格式:

using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id = "frm", area = "MyArea" }))

我真的需要这些参数来实现所有其他功能,但问题是,在我的表单提交后,它试图重定向到该控制器/操作,由于这是一个无效操作,我得到了一个空白页。我有一些javascript用于提交按钮的onclick事件,它保存了我想要重定向到的位置:

onclick='var promise = Dialog("Confirm:", "Are you sure you wan to proceed? ","", "frm"); 
                  promise.fail(function () 
                      {successfulSave("Error!", "There was a problem processing your request");});
                promise.done(function () 
{ $("#frm").submit(); successfulSave("Success!", "Locale Saved Successfully"); 
       setTimeout(function() {window.location.href="@Url.Action("Action2", "Controller", new {area = "MyArea"})";}, 3000);});'

我想重定向到Controller2/Action2…而不是表单持有的后操作(Controller/action),并在onclick事件中执行检查(successfulDialog)。

"我想重定向到Controller2/Action2……而不是表单包含的后操作(Controller/action)。"

如果我理解这句话,那么您希望发布到Controller/Action,然后重定向到Controller2/Action2。要执行此操作,请从后操作返回RedirectToAction。

public ActionResult Action(MyViewModel vm)
{
   if(ModelState.IsValid)
   {
      //do whatever, save to database
      return RedirectToAction("Action2", "Controller");
   }
   //error
   return View();
}