ウェブ構成:
<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 つが見つからないことを示しました。
それを修正した後、すべてが期待どおりに機能しました。
みんなありがとう