2

ウェブ構成:

<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

JavaScript 参照ファイル:

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

CSHTML ページ:

@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result", LoadingElementId = "progress", InsertionMode = InsertionMode.Replace }))
{
    <div class="form">
        <div class="emailBox">
            <input id="email" name="email">
            <input type="submit" value="Join Us">
        </div>

        <div id="result">
        </div>
        <div id="progress" style="display:none;">
            <img src= "@Url.Content("~/Content/images/Ajax-loader-bar.gif") ">
        </div>
    </div>
}

Controller.cs:

    [HttpPost]
    public string Index(SignUpModel model)
    {
        return "Hello";
    }

[送信] ボタンをクリックすると、ページ全体が「こんにちは」という白いページに置き換えられるのはなぜですか。Ajax.BeginForm がDIV RESULTの内容を置き換えるという印象を受けました。

私は何を間違っていますか??

また、LoadingElementID
は、AJAX 呼び出しがその値を返すときに自動的に非表示になりますか?

=========================
ANSWER
Firebug は、参照された JS ファイルの 1 つが見つからないことを示しました。
それを修正した後、すべてが期待どおりに機能しました。

みんなありがとう

4

2 に答える 2

3

jqueryを使用しているページにJquery.unobtrusive-ajaxスクリプト ファイルが追加されていることを確認してくださいAjax.BeginForm。さらに、firebug (または任意のデバッガー ツール) で、ajax が失敗し、ページ全体の完全なポストバックをトリガーする可能性のある JavaScript エラーの存在を確認します。はい、ajax post の結果が戻ってくると、loading 要素は自動的に非表示になります。
また、web.config に次の設定が含まれていることを確認してください。

<appSettings>
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    </appSettings>
于 2012-06-04T05:43:33.917 に答える
1

1) ヘッダーに投稿が含まれていることを確認してください

   @using (Ajax.BeginForm(new AjaxOptions 
{ UpdateTargetId = "result", 
LoadingElementId = "progress", 
InsertionMode = InsertionMode.Replace,   
HttpMethod = "POST"  }))

2) 参照されているすべての JavaScript ファイルがページに含まれていることを確認してください。

hello を返す代わりに、View() を返すようにしてください

于 2012-06-04T05:43:30.190 に答える