私は再び。
ビューでリンクをレンダリングしようとしていますが、パラメーターがクエリ パラメーターとしてレンダリングされています。つまり、私は次のことを望みます:
http://mysite/Discussion/AddMessage?guid=12345&title=MyTitle
としてレンダリングされる
http://mysite/Discussion/AddMessage/12345/MyTitle
どうすればこれを達成できますか?
マーク
私は再び。
ビューでリンクをレンダリングしようとしていますが、パラメーターがクエリ パラメーターとしてレンダリングされています。つまり、私は次のことを望みます:
http://mysite/Discussion/AddMessage?guid=12345&title=MyTitle
としてレンダリングされる
http://mysite/Discussion/AddMessage/12345/MyTitle
どうすればこれを達成できますか?
マーク
はい、使用できます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>