在部署我的MVC项目时,我遇到了相对路径w.r.t服务器的问题。
我将该项目作为IIS中的应用程序托管。最后,我的应用程序的URL看起来像http://localhost/portal/Account/Login
这里'portal'是IIS中的应用程序名称。在ASP.net开发服务器中一切正常。而部署它需要相对于服务器的相对路径。因此我的jquery ajax请求开始失败。
为了解决这个问题,我将操作保存在隐藏字段中,并从那里访问并使用forjax请求。以下是代码。
<input type="hidden" value="@Url.Action("GetNewOffersSearch", "Updates")" id="NewOffersSearchUrl" />
var NewoffersUrl = document.getElementById("NewOffersSearchUrl").value;
$.ajax({
type: 'GET',
url: NewoffersUrl ,
cache: false,
timeout: 10000,
contentType: "application/json; charset=utf-8",
success: function (_results) {
$("#updatesContent").html(_results);
},
error: function (_results) {
}
});
最初NewoffersUrl是"/Updates/GetNewOffersSearch"
并且它抛出路径错误。但现在它是"/portal/Updates/GetNewOffersSearch"
并且工作正常
我只是想知道我所遵循的方法是否正确。对于这个问题有没有更好的解决方法?
答案 0 :(得分:3)
我们执行AJAX
请求的方式类似,但是我们将URL直接传递给ajax调用的url参数,而不是使用隐藏字段。
$.ajax({
type: 'GET',
url: @Url.Action("GetNewOffersSearch", "Updates"),
cache: false,
timeout: 10000,
contentType: "application/json; charset=utf-8",
success: function (_results) {
$("#updatesContent").html(_results);
},
error: function (_results) {
}
});