Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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
Asp.net mvc Ajax帖子中的Url路径名问题_Asp.net Mvc_Ajax - Fatal编程技术网

Asp.net mvc Ajax帖子中的Url路径名问题

Asp.net mvc Ajax帖子中的Url路径名问题,asp.net-mvc,ajax,Asp.net Mvc,Ajax,在开发中,我制作了一篇Ajax文章,它在开发中起作用。但是,当我将它放在测试服务器上时,它无法工作,因为IIS已为应用程序分配了一个子文件夹,而这在我的开发环境中是缺失的。 我已经找到了解决方法(见下文),但我是第一个承认这不应该是解决方案的人,因为我必须记住每次调用Ajax时都要为url调用函数。 一定有更好的办法。 但是,代码将向您显示我正在修复的内容 function OperationsManagerFlagClickFunc(userId) { $.ajax({

在开发中,我制作了一篇Ajax文章,它在开发中起作用。但是,当我将它放在测试服务器上时,它无法工作,因为IIS已为应用程序分配了一个子文件夹,而这在我的开发环境中是缺失的。 我已经找到了解决方法(见下文),但我是第一个承认这不应该是解决方案的人,因为我必须记住每次调用Ajax时都要为url调用函数。 一定有更好的办法。 但是,代码将向您显示我正在修复的内容

function OperationsManagerFlagClickFunc(userId) {
    $.ajax({
        url: GetUrl("/Users/UpdateOperationsManagerFlag"),
        type: "POST",
        data: { "userId": userId },
        success: function (data) { }
    });
}

function GetUrl(path) {
    var pathArray = window.location.pathname.split('/');
    if (pathArray[1] === "ITOC")
        return "/ITOC" + path;
    else
        return path;
}

为什么不单独定义一个变量,比如siteUrl,它将保存站点的url,在两台服务器上使用不同的值? 那么就做:

url: siteUrl + "/Users/UpdateOperationsManagerFlag"

如果您的javascript位于.aspx文件中,则可以生成如下url:

function OperationsManagerFlagClickFunc(userId) {
    $.ajax({
        url: "<%= Url.Action("UpdateOperationsManagerFlag","User") %>",
        type: "POST",
        data: { "userId": userId },
        success: function (data) { }
    });
}
函数操作ManagerFlagClickFunc(用户ID){
$.ajax({
url:“”,
类型:“POST”,
数据:{“userId”:userId},
成功:函数(数据){}
});
}

非常感谢。我必须使控制器参数=“Users”,但除此之外,它还能工作。