javascript - HTML.BeginForm MVC 4 的重定向问题

标签 javascript jquery forms asp.net-mvc-4 razor

我有以下顾虑(可能正在寻找不同的方法来做到这一点)。我有一个发送到返回无效的后 Controller 的表单。我的表单使用以下格式:

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

我真的需要这些参数才能让所有其他事情正常工作,但问题是在我的表单提交后,它会尝试重定向到该 Controller /操作,因为它是一个无效操作,所以我得到一个空白页面。我有一些用于提交按钮的 onclick 事件的 javascript,它包含我要重定向到的位置:

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)。”

如果我理解这个语句,你要post到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();
}

关于javascript - HTML.BeginForm MVC 4 的重定向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023545/

相关文章:

javascript - 我如何在同一目录中需要来自 index.js 的内容?

javascript - 通过多次点击创建字符串

javascript - 通过 Rails 中的复选框和下拉菜单更新多个记录。

javascript - 如何使用按钮代替表单外的输入?

javascript - Angular : Is it possible to make Angular directives, 例如 NgIf 和 NgFor,仅在我想要的时候检查它们绑定(bind)的变量?

javascript - AngularJS 取消超时

javascript - 鼠标滚轮事件不适用于 Firefox

javascript - 如何只显示 Flot 图表的最后一点

javascript - MVC 和 Javascript/JQuery 验证库

javascript - 使用向上/向下箭头导航 HTML 表单