使用Html.ActionLink提交表单在Ajax表单中提交

时间:2014-10-29 16:33:42

标签: asp.net-mvc razor asp.net-ajax

我有一个AJAX.BeginForm()表单,我想提交一个Html帖子作为最后的帖子。这是我的表格

@using (Ajax.BeginForm("createSet", "Workout", 
new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "divs", 
HttpMethod = "POST"}, new { id = "myForm" }))
{
    <div id="divs">
        @Html.Partial("WorkoutSet", Session["WorkoutSetList"])
    </div>

    @Html.ActionLink("Submit", "SavePlan", "Workout", new { type = "submit" });
    //<input type="submit" value="Submit" id="submit" name="command" />
    <input type="submit" value="Create Set" name="command" />

}

基本上我的&#34;创造集&#34;按钮用于ajax调用很多工作正常。我能够绑定从局部视图渲染的模型,并在每次ajax调用时将我的模型更新为session。

对于我的最后一步,我想将整个表单与模型值一起提交到SavePlan Action,然后重定向到主页。

面临的问题:

  • 首先,我尝试了Ajax Submit按钮(注释掉的代码),脚本将其重定向到SavePlan以及从partialview呈现的模型值。唯一的问题是我无法重定向到HomePage并且我已经读过无法在ajax调用上完成重定向。

  • 其次,我已尝试@Html.ActionLink进入SavePlan操作,然后继续重定向到HomePage,但模型值从未通过。我已尝试FormCollection,但价值观也未通过。

请提供一些如何解决此问题的建议?我已经花了两天时间在上面,而且我已经撕毁了它。

回顾一下:

  • 尝试Ajax方式允许我传递模型值,但不会重定向到主页
  • 尝试使用Html方式并不允许我传递模型值,但会重定向到主页。

1 个答案:

答案 0 :(得分:0)

你可以从ajax POST重定向 - 在你的控制器中,你需要返回一个window.location javascript片段:

return JavaScript(string.format("window.location = '{0}'", Url.Action("Index")));

这里有一篇文章:Breaking out of an AJAX POST