私は再び。
ビューでリンクをレンダリングしようとしていますが、パラメーターがクエリ パラメーターとしてレンダリングされています。つまり、私は次のことを望みます:
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
を使用してレンダリングします。RouteLink
HtmlHelper
@{
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>