引用 : https://www.wareko.jp/blog/post-21910
your-view-file.cshtml
@{
var baseUrl = ""
+ Request.Url.Scheme + "://"
+ Request.Url.Authority
+ Request.ApplicationPath.TrimEnd('/');
}
@baseUrl/controller/method
で
http://localhost:49983/controller/method
と表示されます。
コントローラーから ViewData で渡す場合は
YourController.cs
string BASE_URL = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd( '/' );
ViewData["BASE_URL"] = BASE_URL;
your-view-file.cshtml
@ViewData["BASE_URL"]/controller/method
で渡します。
Razorテンプレート内では @Request.ApplicationPath のように直接記述することができます。
<table>
<tr><td>Request.ApplicationPath</td><td>@Request.ApplicationPath</td></tr>
<tr><td>Request.FilePath</td><td>@Request.FilePath</td></tr>
<tr><td>Request.Path</td><td>@Request.Path</td></tr>
<tr><td>Request.FilePath</td><td>@Request.FilePath</td></tr>
<tr><td>Request.PathInfo</td><td>@Request.PathInfo</td></tr>
<tr><td>Request.PhysicalApplicationPath</td><td>@Request.PhysicalApplicationPath</td></tr>
<tr><td>Request.PhysicalPath</td><td>@Request.PhysicalPath</td></tr>
<tr><td>Request.RawUrl</td><td>@Request.RawUrl</td></tr>
<tr><td>Request.Url</td><td>@Request.Url</td></tr>
</table>
例えば
http://localhost:49983/Debug/Url
へのアクセスは
Request.ApplicationPath | / |
Request.FilePath | /Debug/Url |
Request.Path | /Debug/Url |
Request.FilePath | /Debug/Url |
Request.PathInfo | |
Request.PhysicalApplicationPath | C:\my_dir\MY-PROJECT\PROJECT\ |
Request.PhysicalPath | C:\my_dir\MY-PROJECT\PROJECT\Debug\Url |
Request.RawUrl | /Debug/Url |
Request.Url | http://localhost:49983/Debug/Url |
のような表示になります。