我可以制作ASP.NET MVC Html.RouteLink()为我的主页返回一个没有ID的URL吗?

时间:2009-03-18 22:34:55

标签: asp.net-mvc routing url-routing html-helper

我的Global.asax.vb页面中有一条这样的路线......

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
    routes.MapRoute( _
        "IdOnly", _
        "{id}", _
        New With {.controller = "Page", _
                  .action = "Details", _
                  .id = "7"} _
    )
End Sub

id用于我的主页。当有人导航到我的http://example.com/

时显示

但是,这也有效:http://example.com/7

我希望我的网站上的任何地方都没有指向id为7的地址。但是,Html.RouteLink()函数会生成这些链接。

对于视图模型,它是主页的子级...

<%=Html.RouteLink(Model.Parent.Title, _
                  "IdOnly", _
                  New With {.id = Model.Parent.Id})%>

...生成以下锚标记:

<a href="/7">Home</a>

如何覆盖我的主页href功能生成的Html.RouteLink()

1 个答案:

答案 0 :(得分:4)

在主页的“IdOnly”路线之前添加新路线:

routes.MapRoute( _
    "HomePage", _
    "", _
    New With {.controller = "Page", _
              .action = "Details", _
              .id = "7"} _
)

RouteLink将使用路由表中第一个匹配的映射来生成链接。