私は、ASP.NET MVC Html.RouteLink()はIDなしで私のホームページのURLを返すことはできますか?

StackOverflow https://stackoverflow.com/questions/660373

質問

私はこのように私の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

私は7のHtml.RouteLink()とアドレスにどこでも自分のサイトにはリンクがありませんしたいと思います。しかし、href機能はそれらを生成します。

ホームページの子のビューモデルの...

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

...次のアンカータグを生成します:

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

私はオーバーライドすることができますどのように<=>私のホームページに<=>機能によって生成された?

役に立ちましたか?

解決

ホームページのあなたの「IdOnly」ルートの前に新しいルートを追加します:

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

RouteLinkリンクを生成するために、ルーティングテーブルに最初に一致したマッピングを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top