我正在使用MVC2和jQuery。將變量傳遞給jQuery中的一個動作
我想在jQuery對話框容器中打開一個局部視圖,傳遞一個要刪除的對象的一個itemID。
我正在做的事情就是傳遞一個動作,將視圖呈現給jquery,我可以在沒有變量的情況下工作。如果我嘗試傳入要刪除的對象的ID,則該操作甚至不會觸發。我可能的陪襯是我傳遞變量的地方。
這裏是我的jQuery代碼:
$(function() {
var itemToDelete
$('#deleteDialog').dialog({
autoOpen: false,
width: 400,
resizable: false,
title: 'Delete Item',
modal: true,
open: function(event, ui) {
//This calls the action if I don't try to pass in the variable
$(this).load("<%: Url.Action("Delete") %>",
{
item: itemToDelete
});
},
buttons: {
"Close": function() {
$(this).dialog("close");
}
}
});
$('#item-delete-button').click(function() {
itemToDelete = $(this).find("input").val()
$('#deleteDialog').dialog('open');
});
});
下面是相關部分的看法是什麼樣子。
<div id="item-delete-button" class="item-delete-button">
Delete
<%:Html.Hidden("item-delete-content", model.ItemID.ToString(), New With {.id = "item-delete-content", .class = "item-delete-content"})%>
</div>
如果我點擊「刪除」,jquery會發生,並打開一個空的對話窗口。如果我不嘗試傳入「itemToDelete」變量,那麼該動作觸發正常,但當然,如果不知道要刪除的項目,我不會走得太遠。
所以,正如我所說的,問題是我沒有把正確的變量傳遞給我的行爲。這可能是一個簡單的錯誤,我對jquery比較陌生。
$(this).load("<%: Url.Action("Delete") %>",
{
item: itemToDelete
});
與此:
您是否使用過螢火蟲或其他瀏覽器加載項來檢視HTTP標頭?我會以此爲出發點來判斷變量是否傳遞給您的操作。 – xbrady
它不是。不知道爲什麼,但同樣,我對jquery比較陌生。 – user961794