Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax.ActionLink和JQuery UI对话框执行控制器操作两次_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 使用Ajax.ActionLink和JQuery UI对话框执行控制器操作两次

Javascript 使用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

 @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