2012-06-04 295 views
2

Web配置:MVC Ajax.BeginForm InsertionMode

<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"; 
    } 

當我點擊SUBMIT按鈕時,原因是什麼,整個頁面被替換爲一個白色的頁面,上面寫着「hello」。我的印象是,Ajax.BeginForm將取代DIV RESULT的內容。

我在做什麼錯?

另外,LoadingElementID
當AJAX調用將返回其值時它會自動隱藏嗎?

=========================
ANSWER
螢火蟲表明,所引用的JS文件中的一個沒有被發現。
我修好後,它所有的按預期工作。

謝謝你們

回答

3

請確保您已將jquery,Jquery.unobtrusive-ajax腳本文件添加到您的頁面上在您使用Ajax.BeginForm之前。此外,檢查螢火蟲(或任何調試工具)是否存在可能導致Ajax失敗並觸發整個頁面的完整回傳的javascript錯誤。是的,當ajax post的結果返回時,loadingelement應該會自動隱藏。
另外,還要確保你的web.config包含以下設置

<appSettings> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 
+0

我有Jquery和Jquery.unobtrusive-ajax。我在哪裏可以找到Jquery.unobstrusive文件? –

+0

已更新的問題,說明我有文件。我在哪裏可以找到任何缺少的文件? –

+0

對不起,我在混合jquery-unobtrusive-validation文件。但這不是必需的。 –

1

1)請確保您包括後在頭

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

2)確保包括所有引用的JavaScript文件的網頁上

,而不是返回的問候嘗試返回查看()

+0

理想我想返回基於提供的文本框中的值不同的消息。 –

+0

我認爲你正在升級一些參考文件 –

+0

檢查我的更新問題。這些是我目前的文件。 –