我在Web表单应用程序中使用ASP.NET路由。
我们说我有一条关于水果的网页produce/fruit
。
让我们说我有一个关于苹果的网页produce/fruit/apples
。
因此,produce/fruit
是一个页面和一个目录。我是否可以使用相对网址在此页面中创建指向produce/fruit/apples
的超链接,且不必包含当前页面?
如果我在produce/fruit
的页面使用下面的锚点,则会转到produce/apples
,但这不存在。但是,如果我在produce/fruit/
的同一页面上使用相同的链接,则会转到正确的页面/子目录。
<a href="apples">apples</a>
当然,我produce/fruit
的链接可能是<a href="fruit/apples">apples</a>
,但我需要包含当前的网页名称,而且produce/fruit/
无法使用。
我觉得有一些我已经忘记的非常简单的HTML。
答案 0 :(得分:0)
问题只是你没有考虑当前网址末尾的斜线(或缺少斜线)。
例如,如果网址为/produce/fruit
且您的href类似apples
,那么结果链接将为/produce/apples
。但是,如果网址为produce/fruit/
且href相同,则生成的链接将为/product/fruit/apples
。简而言之,您只需确保始终在URL中使用尾部斜杠。为此,您可以在RouteConfig.cs中启用routes.AppendTrailingSlash
:
public static void RegisterRoutes(RouteCollection routes)
{
routes.AppendTrailingSlash = true;