我有以下问题(可能正在寻找另一种方法)。我有一个表单,我发送到一个返回void的帖子控制器。我的表单使用以下格式:
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 ...而不是表单保存的post动作(Controller / Action)并在onclick事件中执行检查(successfulDialog)。
答案 0 :(得分:2)
"我想重定向到Controller2 / Action2 ...而不是表单保存的帖子操作(控制器/操作)。"
如果我理解了这个陈述,你想发布到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();
}