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