Ajax文章中的asp.net mvc-Url路径名问题



在开发过程中,我发布了一篇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;
}

如果你的javascript在.aspx文件中,你可以生成这样的url:

function OperationsManagerFlagClickFunc(userId) {
    $.ajax({
        url: "<%= Url.Action("UpdateOperationsManagerFlag","User") %>",
        type: "POST",
        data: { "userId": userId },
        success: function (data) { }
    });
}

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

url: siteUrl + "/Users/UpdateOperationsManagerFlag"

最新更新