1

私は再び。

ビューでリンクをレンダリングしようとしていますが、パラメーターがクエリ パラメーターとしてレンダリングされています。つまり、私は次のことを望みます:

http://mysite/Discussion/AddMessage?guid=12345&title=MyTitle

としてレンダリングされる

http://mysite/Discussion/AddMessage/12345/MyTitle

どうすればこれを達成できますか?

マーク

4

2 に答える 2

0

はい、使用できますRouteLink

Routeの定義の後に、RouteConfig で以下のような名前で新しい最初を追加する必要がありますDefaultRoute:-

routes.MapRoute(
             name: "NewRoute",
             url: "{controller}/{action}/{guid}/{title}",
             defaults: new 
              { controller = "Discussion",
                action = "AddMessage", 
                guid = UrlParameter.Optional, 
                title = UrlParameter.Optional }
             );

次に、 を作成してルート値を追加し、拡張子 from ..RouteValueDictionaryを使用してレンダリングします。RouteLinkHtmlHelper

@{
    var dict = new RouteValueDictionary();
    dict.Add("guid", "someguid");
    dict.Add("title", "sometitle");

}

@Html.RouteLink("LinkText", "NewRoute", dict);

結果のハイパーリンクは次のように生成されます

<a href="/Discussion/AddMessage/someguid/sometitle">LinkText</a>
于 2013-05-17T05:01:20.060 に答える