由于我使用的是安装了NuGet Package的Microsoft.AspNet.Razor的Web应用程序。
在WebForm页面( .aspx)中,我可以使用ResolveUrl()但是在Razor页面( .cshtml)中,我收到此错误 - >
"x:\Source\Foo.Dealer\Foo.Dealer.WebApp.Mobile\Member\DmsDashboard.cshtml(103): error CS0103: The name 'Url' does not exist in the current context"
源代码在这里..
@section HeadJavascriptLibraryFile
{
<script type="text/javascript" src="@Url.Content("~/scripts/webpages/setting-dmsdashboard.js")"></script>
}
和
<img src="@(Url.Content("~/images/miscellaneous/reportandpiechart2.png"))" alt="" />
源代码按要求...
//LayoutMembmerGeneral.cshtml
@using Foo.Dealer.WebApp.Mobile.Infrastructure;
@{
if (LoginManagementTools.DealerUserLoginValidation_BrowsingPage(HttpContext.Current.Request, HttpContext.Current.Response, HttpContext.Current.Session) == false) { }
}<!DOCTYPE html>
<html>
<head>
<title>@Page.Title</title>
@RenderSection("HeadJavascriptLibraryFile", false)
</head>
<body>
@RenderBody()
</body>
</html>
//DmsDashboard.cshtml...
@using Foo.Dealer.WebApp.Mobile.Infrastructure
@using System.Web.Mvc;
@{
Page.Title = "A New Dawn In Auto Pricing";
Layout = "LayoutMemberGeneral.cshtml";
}
@section HeadJavascriptLibraryFile
{
}
<div id="WebLayout1">
<img src="@Url.Content("images/miscellaneous/reportandpiechart2.png")" alt="" />
</div>
答案 0 :(得分:2)
网址助手似乎并不存在于ASP.Net网页中(这实际上就是您尝试做的事情),但您只需使用以下代码即可达到同样的效果:
<img src="~/images/miscellaneous/reportandpiechart2.png" alt="" />
代字号(〜)引用应用程序根目录,并在编译页面并将其发送到客户端时进行转换。
答案 1 :(得分:1)
波浪号(〜)不会被转换为任何data-
属性的一部分,并且可能,其他地方也是如此,尽管我还没有进行过广泛的研究。
如果您在自动转换不起作用的地方碰巧需要此信息,则可以使用代字号等效HttpContext.Current.Request.ApplicationPath
。
在大多数Razor视图中,您应该能够将其缩短为以下内容:
@Request.ApplicationPath
参考:http://msdn.microsoft.com/en-us/library/system.web.httprequest.applicationpath.aspx
在某些情况下,另一种选择是使用VirtualPathUtility
,例如:
@VirtualPathUtility.ToAbsolute("~/")