4

このようなページに単一のルートがありGlobal.asax.vbます...

Shared Sub RegisterRoutes (RouteCollection としての ByVal ルート)
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
    ルート.MapRoute( _
        "IdOnly", _
        "{id}", _
        New With {.controller = "Page", _
                  .action = "詳細", _
                  .id = "7"} _
    )
サブ終了

それidは私のホームページ用です。誰かが私のサイトに移動したときに表示されます:http://example.com/

しかし、これも機能します: http://example.com/7

私のサイトのどこにもid7 のアドレスへのリンクを持たないようにしたいのですが、Html.RouteLink()関数はそれらを生成します。

ホームページの子であるビューモデルの場合…

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

…次のアンカー タグを生成します。

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

ホームページhrefの関数によって生成されたをオーバーライドするにはどうすればよいですか?Html.RouteLink()

4

1 に答える 1

4

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

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

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

于 2009-03-19T20:06:43.847 に答える