2 узла в mvc.sitemap ссылаются на 1 действие с разными параметрами, и они не отображаются в сухарях - PullRequest
0 голосов
/ 14 мая 2019

У меня есть ссылка «Билет / Индекс» с разными параметрами. Я создал меню с этой ссылкой и ее параметрами, используя маршрутизацию. Меню отображается правильно, но хлебные крошки не показывают их!

Карта сайта:

<mvcSiteMapNode id="Admin" title="Admin Menu"  clickable="false" imageUrl="fa fa-th" >
    <mvcSiteMapNode title="Users"  controller="User" action="Index" />
    <mvcSiteMapNode title="Projetcs"  controller="Project" action="Index" />
    <mvcSiteMapNode title="Admin Tickets" controller="Admin" action="Index" /> ===> Ticket/index?role=0
</mvcSiteMapNode>

<mvcSiteMapNode id="Supporter" title="Support Menu"    clickable="false" imageUrl="fa fa-th" >
    <mvcSiteMapNode title="New Tickets" controller="Support" action="ListWaiting" /> ===> Ticket/Index?role=3&mode=receive&status=0
    <mvcSiteMapNode title="Add New Ticket"  controller="Ticket" action="Insert"/> 
</mvcSiteMapNode>

RouteConfig.cs:

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

        routes.MapRoute(
            name: "AdminTicketIndex",
            url: "Admin/Index",
            defaults: new { controller = "Ticket", action = "Index", role = 0 });

        routes.MapRoute(
            name: "SupportTicketIndex",
            url: "Support/ListWaiting",
            defaults: new { controller = "Ticket", action = "Index", role = 3, mode = "receive", status = 0 });

        routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional });
    }

1 Ответ

0 голосов
/ 15 мая 2019

Вау!Я нашел это!Я добавил url к элементам узла и использовал для этого нижеследующий маршрут.Теперь я вижу крошки для каждого меню.Подсказка добавляла url к SiteMapNode.

mvc.sitemap:

  <mvcSiteMapNode id="Admin" title="Admin Menu" clickable="false" imageUrl="fa fa-th" >
      <mvcSiteMapNode title="Users" controller="User" action="Index" />
      <mvcSiteMapNode title="Projetcs" controller="Project" action="Index" />
      <mvcSiteMapNode title="Admin Tickets" controller="Ticket" action="Index/0" url="/Ticket/Index/0" />
    </mvcSiteMapNode>

   <mvcSiteMapNode id="Supporter" title="Support Menu" clickable="false" imageUrl="fa fa-th" >
      <mvcSiteMapNode id="Waiting" title="New Tickets" controller="Ticket" action="Index/3/receive/0" url="/Ticket/Index/3/receive/0" />
        <mvcSiteMapNode title="Add New Ticket" controller="Ticket" action="Insert/3" url="/Ticket/Insert/3"/>
   </mvcSiteMapNode>

RouteConfig.cs:

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

        routes.MapRoute(
          name: "TicketIndex",
          url: "{controller}/{action}/{role}/{mode}/{status}",
          defaults: new { controller = "Ticket", action = "Index", role = UrlParameter.Optional, mode = UrlParameter.Optional, status = UrlParameter.Optional });

        routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new {controller = "Account", action = "Login", id = UrlParameter.Optional });

    }
...