ASP.NET MVC Content Path (相對 & 絕對路徑)
2022-02-22
筆記 ASP.NET 開發時,如何處理相對路徑資源使用的相關問題,包含 Url.Action
與 Url.Content
的介紹。
說明
Url.Action
Url.Action
可以用於處理 js script 需要組合 API 呼叫的使用。
$.ajax({
url: '@Url.Action("Products", "API")'
})
Url.Content
使用 Url.Content
可以將 相對路徑 轉換為 絕對路徑,例如想要在 Razor cshtml 的 scripts 部分載入其他 js 資源時使用。
這邊的 相對路徑 是專指使用 波浪號(Tilde) 的 Virtual Path 轉換,而非使用上一層點號的轉換 (例如 ../
或者 ../../
)。
Vue.cshtml
<script src='@Url.Content("~/Scripts/Library/index.js")'></script>
使用 Url.Content
的時候,不會有 intellisence,所以使用起來會稍微有點不安感,但可以在在 Html 部分先使用 script:src
的方式先輸入好 Virtual Path 再加入到 Scripts 的部分。
需要注意的是如果 js script 是獨立的 js 檔案,則沒有辦法使用 Url.Cotent
,因為 Razor 不會作用在 js 檔上。如果需要將 js 獨立成專門的檔案,替代的方案是將 js Scripts 獨立為 cshtml,如此一來便可以使用 Url.Content
,如果要引入的話則使用 @Html.Partial
引入 🤩
Vue.cshtml