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

C# 没有MVC的ASP.NET中与Razor的相对链接,c#,html,asp.net,razor,razor-2,C#,Html,Asp.net,Razor,Razor 2,我们正在创建一个包含根目录中所有页面的站点。因此,默认情况下,所有链接都引用它们所在目录中的位置 <a href="Page.cshtml">Page</a> 我们已经对其进行了重组,一些页面现在位于子文件夹中,因此整个站点的链接现在需要是相对的。我已经读到,当使用Razor时,波浪(~)在标记中不起作用。ie 如何格式化链接,使其指向根目录中的某些内容 什么样的 编辑:解析为:浏览@Html.ActionLink 它允许您使用控制器名称查看@Html.Actio

我们正在创建一个包含根目录中所有页面的站点。因此,默认情况下,所有链接都引用它们所在目录中的位置

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

我们已经对其进行了重组,一些页面现在位于子文件夹中,因此整个站点的链接现在需要是相对的。我已经读到,当使用Razor时,波浪(~)在标记中不起作用。ie

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

什么样的<代码>


编辑:解析为:
浏览@Html.ActionLink


它允许您使用控制器名称查看@Html.ActionLink

它允许您使用控制器名称

尝试以下操作:

@helper _href(string url)
{
    @VirtualPathUtility.ToAbsolute(url)
}
要在页面上使用它,请执行以下操作:

编辑:我根本不知道如何使用内置的Href方法。你绝对应该使用它。

试试这个:

@helper _href(string url)
{
    @VirtualPathUtility.ToAbsolute(url)
}
要在页面上使用它,请执行以下操作:

编辑:我根本不知道如何使用内置的Href方法。你一定要用它来代替。

使用这种方法,如下所示:

@Href("SomePage")
请注意,您不需要使用文件扩展名。

请使用以下方法:

@Href("SomePage")

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

但我们没有使用MVC。即使他使用MVC,您也永远不会使用ActionLink引用静态内容。这就是
@Url.Content()
的用途。不过我们没有使用MVC。即使他使用MVC,您也永远不会使用ActionLink来引用静态内容。这就是
@Url.Content()
的作用。谢谢你的建议,实际上刚刚找到了一个更简单的解决方法,我将对原始帖子进行编辑。你的解决方法没有多大意义。为什么要使用
@Href(“~/”)Page.cshtml
而不是
@Href(“~/Page.cshtml”)
。后者更干净,更容易阅读。它可以通过查找和替换在几秒钟内添加到整个站点,我们可能会将其更改为一路清理。感谢您的建议,实际上刚刚找到了一个更简单的解决方法,我将对原始帖子进行编辑。您的解决方法没有多大意义。为什么要使用
@Href(“~/”)Page.cshtml
而不是
@Href(“~/Page.cshtml”)
。后者更干净,更容易阅读。它可以通过查找和替换在几秒钟内添加到整个站点,我们可能会将其更改为沿路清理。