MVC 3部分视图表单 - 提交更改URL

时间:2012-07-09 10:53:11

标签: c# asp.net-mvc-3 asp.net-mvc-partialview

我有一个MVC 3项目,它有一个简单的表单,包含在PartialView中: (表单位于加载此部分

的视图中的“<div id="form"> </div>”中
    @using (Ajax.BeginForm("Submit", "Form", new AjaxOptions
                                                           {
                                                               HttpMethod = "POST",
                                                               UpdateTargetId = "form"
                                                           }))
{ .... }

我的控制器是:

        [HttpPost]
    public PartialViewResult Submit(FormElement form)
    {
 ....
  return PartialView("_RequestFormSubmitted");
    }

我遇到的问题是,当我提交表单时,我会被定向到视图结果URL(/ Form / Submit /),而不是停留在当前页面上,并返回部分视图。

我错过了一些非常明显的东西吗? 我可以错过一个脚本参考吗?

我在页面末尾包含以下脚本:

    <script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

编辑:

我的表单现在在HTML

中呈现如下
<form action="/Form/Submit" data-ajax="true" data-ajax-method="Post" data-ajax-mode="replace" data-ajax-update="#form" id="form0" method="post">    <hgroup>
        <h6 class="icon"><img src="/Content/img/icon/dining.png"> YOUR<br>DINING<br>REQUEST</h6>
    </hgroup>
<ul>

    <li class="field type-select">
        <label for="Name">Your name</label>
        <input class="text-box single-line" data-val="true" data-val-required="The Your name field is required." id="Name" name="Name" type="text" value="">
        <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
    </li>
    <li>
        <input type="submit" value="Submit">
    </li>
</ul>

2 个答案:

答案 0 :(得分:2)

是的,解决了它:我没有包括

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

(但我有“非ajax!”)

感谢大家的帮助!

答案 1 :(得分:1)

你需要使用

new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "Post", UpdateTargetId = "listForm" }

提交链接