MVCプロジェクトをデプロイしているときに、サーバーに対する相対パスの問題に直面しました。プロジェクトをIISのアプリケーションとしてホストしています。最後に、私のアプリケーションのURLは次のようhttp://localhost/portal/Account/Login
になります。「portal」はIISのアプリケーション名です。ASP.net開発サーバーでは、すべてが正常に機能していました。デプロイ中に、サーバーに対する相対パスが必要でした。このため、私のjqueryajaxリクエストは失敗し始めました。この問題を修正するために、アクションを非表示フィールドに保持し、そこからアクセスして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"
正常に機能しています
私がフォローしているアプローチが正しいかどうかを知りたいだけです。この問題に対するより良い修正はありますか?