0

私はこのルーティングマップを持っています:

routes.MapRoute(
            "ViewNews",
            "{controller}/{action}/{id}/{title}",
            new { controller = "Home", action = "NewsDetail", id = "", title = "" }
        );

そして私の見解ではこのActionLink:

@Html.ActionLink(Model.Title, "NewsDetail", new { id = Model.Id, title = Url.ToFriendlyUrl(Model.Title) })

私はそれがこのようなものをレンダリングすることを期待しています:

http://localhost:49327/Home/NewsDetail/1/news-title

代わりに、次のようにレンダリングします。

http://localhost:49327/Home/NewsDetail/1?title=news-title

何が恋しい?

アップデート

次のように、デフォルトの前にMapRouteを移動しました。

routes.MapRoute(
        "ViewNews",
        "{controller}/{action}/{id}/{title}",
        new { controller = "Home", action = "NewsDetail", id = "", title = "" }
        );


routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}", // URL with parameters
            new { controller = "Home", action = "Index" } // Parameter defaults

        );

しかし今、私が最初のURLを要求すると:

http://localhost:49327/Home

私はすぐに次の場所にリダイレクトされます:

http://localhost:49327/Home/NewsDetail/1/news-title

「NewsDetail」がデフォルトのアクションになりました!

ここに画像の説明を入力してください

4

1 に答える 1

1

Model.Idパラメータがnullまたは空でないこと、およびデフォルトルートがGlobal.asaxに表示されているルートの前にないことを確認してください。削除するか、このカスタムルートの後に配置する必要があります。

于 2012-09-26T11:01:05.623 に答える