C# 不带尾随斜杠的链接
我在MVC中使用以下命令在我的应用程序中创建指向我主页的链接:C# 不带尾随斜杠的链接,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我在MVC中使用以下命令在我的应用程序中创建指向我主页的链接: <a href="~/">home</a> 不幸的是,当它在应用程序下运行时,会创建一个类似 <a href="/app-name/">home</a> 是否有办法创建指向应用程序名称的链接,而不使用尾随斜杠(或只对其进行硬编码) 我们的网站是规范化的,因此任何带有尾随斜杠的URL最终都会被重定向到其非尾随斜杠版本,并且由于此链接带有尾随斜杠,因此会导致不必要的重定向跃点,
<a href="~/">home</a>
不幸的是,当它在应用程序下运行时,会创建一个类似
<a href="/app-name/">home</a>
是否有办法创建指向应用程序名称的链接,而不使用尾随斜杠(或只对其进行硬编码)
我们的网站是规范化的,因此任何带有尾随斜杠的URL最终都会被重定向到其非尾随斜杠版本,并且由于此链接带有尾随斜杠,因此会导致不必要的重定向跃点,这会影响我们的seo评级。Html.ActionLink助手应生成符合您要求的链接:
@Html.ActionLink("home", "Index", "Home")
假设你的主页被称为“索引”并由“HomeController”呈现。多亏了Lajos Arpad的评论,它让我想到了另一个组成url的方法,所以我想如果我使用虚拟实用程序。为了解决这个问题,我可能可以将结果作为子串
但使用以下内容意味着我不需要使用子字符串来获取所需的url:
<a href="@VirtualPathUtility.ToAbsolute("~")">Home</a>
不幸的是,这还添加了尾部斜杠,比如你的应用程序中的路由配置与我的应用程序不同。是否设置为true?不确定-我没有这样设置,除非默认设置为true,否则我不认为soDefault为false。如果设置为RouteTable.Routes.AppendTrailingSlash=true代码>我还看到示例中带有尾随斜杠的URL。如果我不加这一行,我看不到尾随的斜杠。嗯,很奇怪。我没有将它添加到我的路由配置中,因此不确定为什么我的路由配置会附加尾部的slashI建议检查URL是否以(“/”)结尾,如果是,则收集子字符串(0,MyString.Length-1)