如何使用@ Url.Content()在非MVC剃刀网页?(How do I use @Url.Co

2019-10-20 07:25发布

由于我使用具有安装NuGet包的Microsoft.AspNet.Razor Web应用程序。

在Web窗体页( 的.aspx),我可以使用RESOLVEURL(),但在剃刀页(.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>

Answer 1:

该网址助手似乎并没有在ASP.Net网页存在(这是你正在试图做的基本上就是),但你可以简单地使用下面的代码来达到同样的效果:

<img src="~/images/miscellaneous/reportandpiechart2.png" alt="" />

波浪符号(〜)引用了应用程序的根,当页面被编译和发送到客户端转化。



Answer 2:

波浪符号(〜)不转化为任何的部分data-属性和可能,在其他地方也是,虽然我还没有广泛的研究。

如果你碰巧需要在一个地方将此信息自动transofmration不工作,你可以使用波浪号相当于HttpContext.Current.Request.ApplicationPath

在大多数剃刀的观点,你应该能够缩短到以下几点:

@Request.ApplicationPath

参考: http://msdn.microsoft.com/en-us/library/system.web.httprequest.applicationpath.aspx

在某些情况下另一种替代方法是使用VirtualPathUtility如:

@VirtualPathUtility.ToAbsolute("~/")


文章来源: How do I use @Url.Content() in non-MVC Razor webpage?