没有MVC的ASP.NET中与Razor的相对链接

时间:2013-11-08 18:37:40

标签: c# html asp.net razor razor-2

我们正在开发一个设置了根目录中所有页面的网站。因此,所有链接都默认引用它们所在的同一目录中的位置...

<a href="Page.cshtml">Page</a> 

我们对其进行了重组,部分页面现在位于子文件夹中,因此整个网站的链接现在需要是相对的。我已经读过使用Razor时,波形符号(〜)在标记中不起作用。即<a href="~/Page.cshtml">Page</a>

如何格式化链接以使其指向根目录中的某些内容?

有点像? <a href="@Href("~/Page.cshtml")">Page</a>

编辑:已解决:<a href="@Href("~/")Page.cshtml">Page</a>

3 个答案:

答案 0 :(得分:3)

试试这个:

@helper _href(string url)
{
    @VirtualPathUtility.ToAbsolute(url)
}

要在页面上使用它:

<a href="@_href("~/page.html")">linky</a>

编辑:我从来不知道内置的Href方法超出了我的范围。你肯定应该使用它。

答案 1 :(得分:3)

使用Href方法,如下所示:

@Href("SomePage")

请注意,您无需使用文件扩展名。

答案 2 :(得分:0)

浏览@ Html.ActionLink

它允许您使用控制器名称