3

在部署我的 MVC 项目时,我遇到了相对路径 wrt 服务器的问题。我将项目作为 IIS 中的应用程序托管。最后,我的应用程序的 url 看起来像http://localhost/portal/Account/Login这里的“门户”是 IIS 中的应用程序名称。在 ASP.net 开发服务器中,一切正常。在部署它时需要相对于服务器的相对路径。因此,我的 jquery ajax 请求开始失败。为了解决这个问题,我将操作保留在隐藏字段中并从那里访问并用于 ajax 请求。以下是代码。

 <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"和它的工作正常

我只想知道我遵循的方法是否正确。有没有更好的解决这个问题的方法?

4

1 回答 1

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) {

        }
    });
于 2012-10-09T11:54:54.190 回答