1

PartialView に含まれる単純なフォームを持つ MVC 3 プロジェクトがあります: (フォームは、<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>

4

2 に答える 2

2

そうです、それを解決しました:私は含めませんでした

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

(私は「しかし、非ajaxのものを持っていました!」)

とにかくみんなの助けてくれてありがとう!

于 2012-07-09T11:18:42.233 に答える
1

使用する必要があります

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

あなたの送信リンクに

于 2012-07-09T11:00:03.813 に答える