我有一个 ASP.Net MVC 3 应用程序,它使用 jQuery .ajax 调用来 POST 到服务器端控制器操作,如下所示
客户端 jQuery 调用:
//Page the server
$.ajax({
url: '/Home/Call_Abort',
type: 'POST',
data: "{ 'op_id': '" + ajaxOPID + "', 'statMsg': '" + ajaxStatMsg + "'}",
contentType: 'application/json; charset=utf-8',
success: function (data) {
window.location.href = data.redirectUrl;
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Error while paging the server to abort. Reported error: '" + xhr.responseText + "'.");
}
});
服务器控制器操作:
[HttpPost]
public JsonResult Call_Abort(string op_id, string statMsg)
{
return Json(new
{
redirectUrl = Url.Action("Operator_Home", "Home", new { op_id = op_id, status = statMsg }),
isRedirect = true
});
}
返回 URL 应该将用户重定向到不同的视图(即 Operator_Home 视图)。这适用于我的本地开发 PC,按预期路由到 Operator_Home 视图,但是当我在开发 Web 服务器(带有 IIS 7 的服务器 2008)上运行它进行测试时,我收到以下 404 错误页面作为xhr.responseText结果在上面的 .ajax 调用中。
似乎正在发生的事情不是重定向到我在redirectURL(即Operator_Home)中指定的视图,而是认为Call_Abort控制器操作应该返回Call_Abort视图,因为不存在这样的视图,所以下面的错误被抛出。但是为什么这会发生在 Web 服务器上,而不是我运行 Visual Studio 开发服务器的本地 PC 上呢?是否有一些设置我需要为我在 IIS 上的应用程序进行调整,以便让它像在我的开发机器上一样运行。我对 MVC 路由的理解不够清楚,无法知道为什么会发生这种情况。任何帮助或见解表示赞赏。
更新
抱歉,我在工作地点使用了几台服务器,我引用了错误的 Web 服务器。我正在运行它的服务器是带有 IIS7 的 Server 2008