2011-04-27 69 views
0

我遇到了許多人之前詢問過的相同問題,其中Ajax.BeginForm沒有將該調用發送爲ajax,即Request.IsAjaxRequest()== false,但沒有與建議的解決方案的任何運氣(缺少js文件,設置 'UnobtrusiveJavascript' 等)ASP.NEW MVC3 Ajax BeginForm不作爲Ajax發送

我_ Layout.cshtml文件看起來像這樣:

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

的Web.config

<add key="webpages:Version" value="1.0.0.0"/> 
<add key="ClientValidationEnabled" value="true"/> 
<add key="UnobtrusiveJavaScriptEnabled" value="true"/> 

查看

  @using (Ajax.BeginForm("AjaxTest", new AjaxOptions { UpdateTargetId = "result" })) 
      { 
       <button class="btn" onclick="this.form.submit();">Hit Me!</button> 
      } 
      <div id="result"></div> 

控制器

[HttpPost] 
    public ActionResult AjaxTest(FormCollection formCollection) 
    { 
     bool isAjax = Request.IsAjaxRequest(); 
     return Content("Hello World"); 
    } 

我已經通過Firebug的運行它,並沒有得到任何錯誤。

我在這裏做錯了什麼?

回答

0

您正在使用onclick="this.form.submit()"自己提交表單。

刪除該位。至少給機會AjaxForm顯示一些顏色:)

+0

當然 - 該代碼是從以前的遺留...感謝! – 2011-04-27 23:00:45

0

我不確定你應該在onclick中有該代碼。只需設置要提交的按鈕類型