2017-02-13 22 views
0

私は、コントローラ内のアクションを持っている:mvcSiteMapNodeにパラメータを追加するには?

DOCTYPEがシンプルな列挙型である
public ActionResult Close(DocType docType) 
    { 
     return View(); 
    } 

。 同じアクションに2つの異なるリンクを設定したいのですが、パラメータが異なります。私はこの試みている:

<mvcSiteMapNode title="Accounting" clickable="false" imageUrl="~/Content/Images/Buttons/MenuButtons/billing.png" visibility="path"> 
     <mvcSiteMapNode title="Payments" controller="Payment" action="Index"></mvcSiteMapNode> 
     <mvcSiteMapNode title="Closing WO" controller="Payment" action="Close" docType="2"></mvcSiteMapNode> 
     <mvcSiteMapNode title="Closing WS" controller="Payment" action="Close" docType="4"></mvcSiteMapNode> 
    </mvcSiteMapNode> 

をしかし、メニューには、私は、任意のパラメータなしの2つのリンクがあります:「閉じる/支払い/」

間違って何を? mvcSiteMapNodeにパラメータを追加するには?ここで

は私RouteConfigです:

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
+0

これはルーティングの問題のようです。ルーティング設定を表示してください。あなたは '{docType}'パラメタを持つルートも持っていますか? – NightOwl888

+0

いいえ、私はそのようなルートを持っていません。私はオプションのidパラメータでデフォルトルートだけを使いたい –

答えて

0

あなたはデフォルトルートを使用したい場合、あなたは(それが唯一のキーcontrolleractionidをサポートしているので)ルートキーのidを使用する必要があります。そうでない場合は、クエリ文字列が?docType=2のルートを取得します。これは、ルートの一部ではない追加の未定義情報です。

<mvcSiteMapNode title="Accounting" clickable="false" imageUrl="~/Content/Images/Buttons/MenuButtons/billing.png" visibility="path"> 
    <mvcSiteMapNode title="Payments" controller="Payment" action="Index"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Closing WO" controller="Payment" action="Close" id="2"></mvcSiteMapNode> 
    <mvcSiteMapNode title="Closing WS" controller="Payment" action="Close" id="4"></mvcSiteMapNode> 
</mvcSiteMapNode> 

public ActionResult Close(DocType id) 
{ 
    return View(); 
} 

そうしないと、キー{docType}のルートを持っている必要があります。いずれにしても、URLを正しく生成するためにはキー名が一致する必要があります(ActionLinkを使用する場合はMVCで必要となります)。

関連する問題