2016-07-12 3 views
0

私はUrl.RouteUrlを使用して、自分のユーザーに戻るためのURLを作成しています。私はそれに渡すパラメータを追加する必要がある場合MVCでURLを作成する方法は?

var path = Url.RouteUrl(new RouteValueDictionary() 
      { 
       { "controller", "Home"}, 
       {"action", "myaction"}, 
       {"area" , "myarea"}, 
      }); 

これは私myarea/home/myaction

との素敵なURLを返し、myarea/home/myaction?param1=abcのように言って、どのようにそれを行うことができますか?

私は

これはすべきではない方法のように思える
var param1Value = "abc"; 
var path = Url.RouteUrl(new RouteValueDictionary() 
      { 
       { "controller", "Home"}, 
       {"action", "myaction"}, 
       {"area" , "myarea"}, 
       new {param1 = param1Value }, 
      }); 

を試してみました。

これを行う方法はありますか?

+0

@KennethK:可能な場合は、例を投稿することができますか? –

+0

以前の(削除された)コメントは無視してください。私はあなたのコードを間違って読む。 –

+0

あなたのリクエストに似たものがあります。 http://stackoverflow.com/questions/6995608/appending-param-to-mvc-routes – Kami

答えて

0

これを行うためのエレガントな方法が見つかりました。

var myDesiredUrl = FetchDomainUri(); 

myDesiredUrl.Path = Url.RouteUrl(new RouteValueDictionary() 
{ 
    { "controller", "Home" }, 
    { "action", "myAction" }, 
    { "area" , "myArea" }, 
}); 

myDesiredUrl.QueryString.Add("myParam1", param1Value); 
0

・ホープこのことができます:

return (new RedirectToRouteResult(
        new System.Web.Routing.RouteValueDictionary(
         new 
         { 
          controller = "Home", 
          action = "myAction", 
          area = "myArea" 
         }))); 

あなたがそれにPARAMを追加したい場合は、ルート設定ファイルのルートマップを変更/追加することができます。新しいキーが追加されると、上記のコードで値を指定できます。

1

はこれを試してみてください:

Url.Action("myAction","Home", new {area="myarea", param="paramvalue"}); 
関連する問題