2011-12-13 81 views
13

林與Asp.net MVC3 relatevely新,ASP.NET AJAX.BeginForm發送多個請求

我有阿賈克斯處理的形式,像這樣:

@using(Ajax.BeginForm( 「dtjson」 ,新的AjaxOptions {HttpMethod =「Post」,UpdateTargetId =「detalle_tarifa」,OnSuccess =「exito2」,OnBegin =「bloquear」}))

我的問題是,當我提交數據時,它發送兩次請求。

讓我們看看視圖。

這是形式:

enter image description here

OK,現在的觀點後提交:

enter image description here

而這一次是要表明螢火蟲調試:

enter image description here

上的佈局,我有那些的JavaScript文件..

<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery.windows-engine.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.jqDock.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.jqDock.min.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.tablePagination.0.4.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.tools.min.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.cookie.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.treeview.js")" type="text/javascript"></script> 
     <script src="@Url.Content("~/Scripts/jquery.treeview.edit.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-1.4.4.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script> 
<script type="text/javascript" [email protected]("~/Content/tinymce/jscripts/tiny_mce/jquery.tinymce.js")></script> 
<script type="text/javascript" [email protected]("~/Content/tinymce/jscripts/tiny_mce/tiny_mce.js")></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
<script src="@Href("~/Scripts/jquery.uploadify.js")" type="text/javascript"></script> 
<script src="@Href("~/Scripts/jquery.scrollTo.js")" type="text/javascript"></script> 
<script src="@Href("~/Scripts/jquery.blockUI.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
<script src="/Scripts/jquery.cookie.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.treeview.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.treeview.edit.js" type="text/javascript"></script> 

看起來這是一個問題jquery ...但我不知道它...

任何幫助將是偉大的,謝謝大家!

+0

可以發佈哪些JavaScript文件包含在您的視圖/佈局? – nemesv

+0

當然我已經做到了!我發現這可能是一個jQuery文件的問題.. – mleger45

回答

61

您在部分中包含了jquery.unobtrusive-ajax.min.js兩次一次佈局。所以你的瀏覽器在內部執行js兩次,它會在表單點擊事件上訂閱兩次,這就是爲什麼要做兩次POST而不是一次。
所以你需要從部分中刪除jquery.unobtrusive-ajax.min.js

注意:如果您正在使用具有佈局的部分,則不需要重複包含在部分中的js,因爲它已由佈局完成。關於layoutspartials有一些很好的文章。

+0

好吧,如果我不重複js'..他們不會在頁面上工作..我已經試過了。包括unobstrusive,通過我這次刪除它的方式,它發送3個請求... – mleger45

+0

我認爲這個問題與http://bugs.jquery有關。com/ticket/4373,除非服務器代碼工作正常 – mleger45

+0

謝謝Nemesv。這幫助我解決了一直困擾我近2天的問題! – jhartzell

2

我的情況我有「返回視圖」,而不是「返回部分視圖」。

2

您已添加jquery.unobtrusive-ajax.js三次。它也發生在我身上。

檢查包配置「〜/ ui/js/jquery.unobtrusive。*」。在你的頁面中,你又添加了jquery.unobtrusive-ajax.js,或許你已經在佈局頁面添加了它。