我正在開發一個asp.net mvc應用程序,並在我的頁面上有Ajax調用。下面是我通過Ajax調用加載到頁面的表單:不需要的多個Ajax請求在asp.net中的動作mvc
形式坐落在一個局部視圖
<div id="CreateCultureArea">
<%
using (Ajax.BeginForm("CreateCulture", "Admin", new AjaxOptions() { OnSuccess = "handleCreateCulture" }))
{ %>
.....
<% } %>
</div>
代碼更新
下面的腳本位於一個觀點:
<a href="#" class="CreateCulture" id="">Create Culture</a>
<script type="text/javascript">
$('.CreateCulture').live('click', function (e) {
e.preventDefault();
var idval = this.id;
$.ajax({
url: "/Admin/CreateCulture",
dataType: 'html',
data: { id: idval },
success: function (mydata) {
$("#CultureContentArea").empty();
$("#CultureContentArea").empty().hide().append(mydata).fadeIn(2000);
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
},
type: "GET"
});
return false;
})
</script>
當用戶點擊與CreateCulture類的鏈接時,表單將加載到頁面。但是當我看到螢火蟲中的請求時,它會多次調用這個動作。我讀了類似的帖子,像我在stackoverflow.com上,他們中的大多數人建議在頁面中刪除重複的「jquery.unobtrusive-ajax.min.js」calss,但正如我看到的輸出頁面,我只看到鏈接到「jquery.unobtrusive -ajax.min.js「腳本。
抱歉,但我無法理解「只要拿出你調用$阿賈克斯,你會看到你的動作被調用一次」你能告訴更多嗎? – 2012-03-30 17:20:01
在您發佈的示例代碼中,您在'.CreateCulture'的點擊處理程序中調用了'$ .ajax'。它被不顯眼的AJAX調用一次,然後再被您的代碼調用。從您的代碼中刪除對'$ .ajax'的調用。事實上,您可以刪除上面列出的'
問題是我在部分視圖中放置了一些腳本,並且每次都通過加載它來複制腳本。所以我把腳本放在頁面上並解決了問題。
來源
2012-03-30 19:06:16
請確保您有在頁面沒有多的.js refrence
來源
2013-02-20 11:37:09 sadeghhp