iT邦幫忙

0

MVC 路徑取得問題

  • 分享至 

  • xImage

想問一下
C# MVC
正式環境的路徑為 localhost/folder/controller/action
測試環境的路徑為 localhost/controller/action
我要取得路徑去做ajax的路徑 我該如何取得用變數取得
正式環境需要取到 localhost/folder的部分 測試取到localhost就可以
目前正式環境多一層folder所以路徑都錯誤

有甚麼辦法可以用一個變數 兩個環境都共用嗎

目前是用

string FullUrls = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf(Request.Url.AbsolutePath)) + Request.ApplicationPath;
if (FullUrls.Substring(FullUrls.Length - 1, 1) != "/")
{
    FullUrls = FullUrls + "/";
}
===========================================================
$.ajax({
    url: FullURL + "controller/GetDefaultData",
});
froce iT邦大師 1 級 ‧ 2024-01-04 16:25:49 檢舉
不是,你測試環境的api設計為啥要搞到跟實際環境差這麼多?
正常來說都是domain那部份不要固定住就好了。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
緯大啊緯大人
iT邦研究生 1 級 ‧ 2024-01-04 16:29:31

可以用發佈環境來處理
假設你的正式機環境,發佈為Release

那麼前端可以這樣

@{
string subpath = string.Empty;
#if RELEASE
subpath = "folder/";
#endif
}

你的部分就這樣取

...略
$.ajax({
    url: FullURL + @subpath + "controller/GetDefaultData",
});

給你參考看看...

1
厚厚
iT邦新手 1 級 ‧ 2024-01-04 16:45:27

如果變數用設定的呢?
把變數設定成系統參數存到DB或設定到config裡,方便不同環境重新設定

或使用MakeRelativeUri來判斷?
https://learn.microsoft.com/zh-tw/dotnet/api/system.uri.makerelativeuri?view=net-5.0&WT.mc_id=DOP-MVP-37580

0

root path寫進資料庫或是當成常數使用。

0
kawa0710
iT邦新手 2 級 ‧ 2024-01-08 11:21:24

在chstml:
@Html.Hidden("yourPath", Url.Action(你的路徑), new { @id = "yourPath" })

在javascript:取這個HTML元素的value就有你想要的路徑了。

我要發表回答

立即登入回答