在 ASP.NET MVC 视图中获取相对 Url
Get Relative Url in ASP.NET MVC View
我有一个 ASP.NET MVC 应用程序。在我看来,我正在使用 Razor。由于我的 IT 部门。该应用程序位于 http://ourdomain.com/appRoot
之类的相对根目录,而不是 http://ourdomain.com
之类的域顶部。这里的另一个挑战是,appRoot
不是静态的。它实际上改变了。出于这个原因,我需要通过 Razor 获取相对根的名称。目前,我有如下内容:
<input id="hiddenElem" type="hidden" value="12345" />
<script type='text/javascript'>
function doThis() {
var id = $('#hiddenElem').val();
var nextUrl = '@(Request.?)' + '/path/' + id;
alert(nextUrl);
}
</script>
调用 doThis
时,我想看到警报 window 以显示 /appRoot/path/12345
。将什么放入与 nextUrl
关联的 Razor 块中以获得相对根?
通常您会使用 mvc
路由功能 Url.Action()
。
function doThis() {
var id = $('#hiddenElem').val();
var nextUrl = '@Url.Action("MyAction","MyController")' + '/path/' + id;
alert(nextUrl);
}
Html.ResolveUrl()
函数可以很好地解析相对路径,但是,它没有考虑路由。
此外,使用 Url.Content()
函数可能会产生您期望的结果。例如,在下面的代码片段中:
.Template("<img src='"+ @Url.Content("~/Images/Icons/16/STATE.png")+"'/> <mark>${data.StateName }</mark>");
无论您从何处调用图像或如何使用根目录访问视图,图像都将始终解析。
我有一个 ASP.NET MVC 应用程序。在我看来,我正在使用 Razor。由于我的 IT 部门。该应用程序位于 http://ourdomain.com/appRoot
之类的相对根目录,而不是 http://ourdomain.com
之类的域顶部。这里的另一个挑战是,appRoot
不是静态的。它实际上改变了。出于这个原因,我需要通过 Razor 获取相对根的名称。目前,我有如下内容:
<input id="hiddenElem" type="hidden" value="12345" />
<script type='text/javascript'>
function doThis() {
var id = $('#hiddenElem').val();
var nextUrl = '@(Request.?)' + '/path/' + id;
alert(nextUrl);
}
</script>
调用 doThis
时,我想看到警报 window 以显示 /appRoot/path/12345
。将什么放入与 nextUrl
关联的 Razor 块中以获得相对根?
通常您会使用 mvc
路由功能 Url.Action()
。
function doThis() {
var id = $('#hiddenElem').val();
var nextUrl = '@Url.Action("MyAction","MyController")' + '/path/' + id;
alert(nextUrl);
}
Html.ResolveUrl()
函数可以很好地解析相对路径,但是,它没有考虑路由。
此外,使用 Url.Content()
函数可能会产生您期望的结果。例如,在下面的代码片段中:
.Template("<img src='"+ @Url.Content("~/Images/Icons/16/STATE.png")+"'/> <mark>${data.StateName }</mark>");
无论您从何处调用图像或如何使用根目录访问视图,图像都将始终解析。