2016-05-26 4 views
1

MVCSiteMapProvider.MVC5を使用していますが、私は自分のサイトマップを設定しようとしています。MVCSiteMapProviderはパラメータを無視します

私のルートは以下のとおりです。

通知/

通知/アラーム/

通知/警告/

通知/情報/

アラーム、警告および情報が渡されます「notificationFilter」アクションパラメータに追加します。

これは現在、ルート通知のためのブレッドクラム/ホーム>通知として表示される私の基本的なサイトマップです。私がやりたい何

<mvcSiteMapNode title="Home" controller="Dashboard" action="System"> 
    <mvcSiteMapNode title="Vacuum Management" controller="Dashboard" action="SubSystem" /> 
    <mvcSiteMapNode title="Notifications" controller="Notifications" action="SystemNotifications" /> 
</mvcSiteMapNode> 

は、それはまだホーム>通知としてブレッドクラムを表示し、パラメータを無視します(例えば、通知/アラーム/)「NotificationFilterの」パラメータが渡された場合、すべてのようにキャッチを追加することです。

私はこれを試してみました:

通知/アラームが、その後何ものために働く
<mvcSiteMapNode title="Home" controller="Dashboard" action="System"> 
    <mvcSiteMapNode title="Vacuum Management" controller="Dashboard" action="SubSystem" /> 
    <mvcSiteMapNode title="Notifications" controller="Notifications" action="SystemNotifications" notificationFilter="Alarm" /> 

<mvcSiteMapNode title="Home" controller="Dashboard" action="System"> 
    <mvcSiteMapNode title="Vacuum Management" controller="Dashboard" action="SubSystem" /> 
    <mvcSiteMapNode title="Notifications" controller="Notifications" action="SystemNotifications" notificationFilter="Alarm" /> 
    <mvcSiteMapNode title="Notifications" controller="Notifications" action="SystemNotifications" notificationFilter="Warning" /> 
    <mvcSiteMapNode title="Notifications" controller="Notifications" action="SystemNotifications" notificationFilter="Information" /> 

をしかしタイトルが鍵となりますので、パン粉は異なるテキストを表示していました:私はまた、複数の行を追加してみました。

すべてのお役に立ちました。

ありがとうございます!

ルート設定:the documentation 1として

  routes.MapRoute(
      name: "NotificationsSystem", 
      url: "notifications", 
      defaults: new { controller = "Notifications", action = "SystemNotifications", notificationFilter = "" } 
      ); 

     routes.MapRoute(
      name: "NotificationsSystemFiltered", 
      url: "notifications/{notificationFilter}", 
      defaults: new { controller = "Notifications", action = "SystemNotifications", notificationFilter = "" } 
      ); 
+0

通常、ルート値は、要求のルート値(URLではなく)と一致するために使用されます。しかしあなたはあなたのルート設定を投稿していないので、一致するかどうかを知ることはできません(私はそうは思わない)。ルーティング設定を投稿してください。 – NightOwl888

+0

ありがとうNightOw888上記のルート設定を追加しました。 – ee0jmt

答えて

0

、特定のパラメータについて任意値と一致するように、単一のノードがpreservedRouteParametersを使用して行うことができ得ます。

<mvcSiteMapNode title="Notifications" controller="Notifications" action="SystemNotifications" preservedRouteParameters="notificationFilter" /> 

あなたのノードに子がないとき、これはうまく動作しますが、あなたがtake into consideration what will happen when the user navigates back up the hierarchyに必要な子供を持っているノードでこの属性を置く場合。

関連する問題