Javascript 使用Ajax.ActionLink和JQuery UI对话框执行控制器操作两次
我有ajax.actionlinkJavascript 使用Ajax.ActionLink和JQuery UI对话框执行控制器操作两次,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我有ajax.actionlink @Ajax.ActionLink("Click here",//link text "Insert", // action name "Projects", // controller new { poz = item.itemID.ToString() }, // route values new AjaxOptions() { HttpMethod = "GET", UpdateTargetID = "PrjDiv" OnSucces
@Ajax.ActionLink("Click here",//link text
"Insert", // action name
"Projects", // controller
new { poz = item.itemID.ToString() }, // route values
new AjaxOptions() { HttpMethod = "GET", UpdateTargetID = "PrjDiv" OnSuccess = "Initiate_Dialog" }, // ajax options
new { @class = "openDialog", @id = item.idemID.ToString() } //htmlAttributes
)
和jqueryui对话框
function Initiate_Dialog() {
var itemID= $(this).attr("id").replace("item_", "");
var prjID= $("#m_project").val();
var url = encodeURI("/Projects/Insert?poz=" + itemID+ "&proj=" + prjID);
$("#dialog-edit").dialog({
title: 'Insert',
autoOpen: false,
resizable: false,
height: 'auto',
width: 650,
show: { effect: 'drop', direction: "up" },
modal: true,
draggable: true,
open: function (event, ui) {
$(this).load(url);
},
close: function (event, ui) {
$(this).dialog('close');
},
buttons: {
Cancel: function () {
$(this).dialog("close");
}
}
});
$("#dialog-edit").dialog('open');
return false;
}
当我点击生成的链接时,我的控制器动作被执行2次。一次使用从ajax.actionlink发送的参数,第二次使用从javascript发送的参数
我知道我有两个电话,这就是为什么要执行两次操作。我的问题是,有没有办法只执行来自javascript的调用,而不执行来自actionlink的调用?IMO您可以简单地去掉
@Ajax.actionlink
,并使用常规html作为链接。不行。PageIt是几个局部视图的组合,它们以不引人注目的方式更新显示数据库中不同表中的数据。弄糊涂了,您不想使用不引人注目的ajax停止请求吗?同样从我所看到的,来自@Ajax.ActionLink
的请求没有更新任何html,因为它没有插入模式
和UpdateTargetId
。我不确定第一次调用是否有任何意义,但如果没有,您可以简单地将链接设置为
,并将Initiate_Dialog()
绑定到其onclick。粘贴代码时,我意外地删除了UpdateTargetID。。。sry