0

我正在寫一個非常簡單的MVC4測試頁面和不顯眼的AJAX似乎並沒有工作。當我點擊我的提交按鈕時,頁面不會被提交。簡單的MVC4不顯眼的AJAX不工作

我有一個斷點是VS,可以告訴沒有請求。

我使用的是Firefox,當我點擊提交按鈕Web控制檯顯示了這個JavaScript錯誤:
---傳遞給在第16行發生的getElementById()

空字符串
--- jquery.unobtrusive-ajax.js



我設置的AJAX選項如下:

AjaxOptions ajaxOpts = new AjaxOptions { UpdateTargetId = "officeList", Confirm = "Are you sure?", Url = Url.Action("GetOfficeData") }; 

這是我給ajaxForm:

@using (Ajax.BeginForm("GetOfficeData", ajaxOpts)) 
{ 
    <div> 
     @Html.DropDownList("orgList", new SelectList(Model.Organizations, "ORGID", "ORGNAME")); 

     <button type="submit" id="btnSubmit">Submit</button> 
    </div> 
} 

我得到了「你確定提示」當我點擊提交按鈕(如AJAX選項中定義)。


如果我改變Ajax.BeginForm到:

@using (Html.BeginForm()) 
... 

然後有一個請求,我的斷點被擊中,而且因爲沒有JS錯誤。


我已經使用的NuGet來獲取最新版本雙方jQuery和不顯眼的Ajax的。以下是查看源 我的腳本標籤(所有的人 - 按順序):

<script src="/Scripts/jquery-2.0.3.js"></script> 
<script src="/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js"></script> 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 
<script src="/Scripts/modernizr-2.5.3.js"></script> 




這裏是獲取呈現形式:

<form action="/Selectee/GetOfficeData" data-ajax="true" data-ajax-confirm="Are you sure?" data-ajax-mode="replace" data-ajax-update="#officeList" data-ajax-url="/Selectee/GetOfficeData" id="form0" method="post">    
    <div> 
     /*--my drop down ..... 
     <br /> 
     <button type="submit" id="btnSubmit">Submit</button> 
    </div> 
</form> 




有任何想法嗎?

+1

是您的Action HttpPost? –

+0

不,它不是HttpPost。在這個階段,這很重要嗎?看來瀏覽器沒有發送請求。 –

+0

你是對的,它甚至沒有去控制器呢。 –

回答

0

我讓它工作。

我沒有Html.BeginForm(),只有Ajax.BeginForm()。這有效嗎?

我添加了一個帶有Ajax.BeginForm()的Html.BeginForm()以及該窗體中的所有控件並開始工作。

我認爲Ajax.BeginForm()取代了Html.BeginForm,但它似乎我需要兩者。那是對的嗎?

+2

你不需要Ajax.BeginForm和Html.BeginForm – Marthijn