Pregunta

Recientemente comencé a usar marteenba proveedor de mapa del sitio, porque no pude resolver un problema de ruta con el otro mapa del sitio que tenía. Es mucho mejor que el anterior. Mi pregunta es: ¿Cómo puedo crear diferentes senderos de pan de pan de páginas que van a una sola página principal? Considere la idea a continuación:

Estructura de mapa del sitio

<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">
       <mvcSiteMapNode title="Clients Search" controller="ClientBussiness" action="ClientSearch" description="Clients Search">
            <mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
        </mvcSiteMapNode>

        <mvcSiteMapNode title="Advanced Search" controller="ClientBussiness" action="AdvancedSearch" description="Clients Advanced Search">
            <mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
        </mvcSiteMapNode>

        <mvcSiteMapNode title="Another Search" controller="ClientBussiness" action="AnotherSearch" description="Clients Another Search">
            <mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
        </mvcSiteMapNode>
</mvcSiteMapNode>

En el ejemplo anterior, mi sendero Breadcrumb siempre muestra la búsqueda de clientes del nodo en lugar de cualquier otro. No sé si debería crear diferentes rutas para cada tipo de búsqueda (hice esto en mi último mapa del sitio, pero desafortunadamente a IIS6 no le gustó).

Aprecio tu ayuda.

EDITAR

Buscando en foros encontré una pregunta similar. Entonces, considere la siguiente estructura:

Home >> Search >> Contracts
Home >> Another Search >> Contracts
Home >> Advanced Search >> Contracts
Home >> Web Service Search >> Extra fields >> Contracts
¿Fue útil?

Solución

Bueno, parece que todo lo que tenía que hacer era agregar algunos atributos dinámicos de nodos en mis controladores. Puedes leer cómo hacerlo aquí. Usando el ejemplo anterior, así es como se hace:

 [MvcSiteMapNodeAttribute(Title = "Search", Key = "search", ParentKey = "ContractSearch", Route = "SearchRoute")]
        [MvcSiteMapNodeAttribute(Title = "AdvancedSearch", Key = "ContractAdvSearch", ParentKey = "AdvSearch", Route = "AdvSearchRoute")]
        [MvcSiteMapNodeAttribute(Title = "AnotherSearch", Key = "ContractAnotherSearch", ParentKey = "AnotherSearch", Route = "AnotherSearchRoute")]
        public ActionResult ContractIndex()
{
   //Things to do...         
}

En el ejemplo anterior, cada tipo de búsqueda se definirá correctamente en el sendero de paneles de pan. Tenga en cuenta que debe definir diferentes rutas para cada tipo de "búsqueda" que desea usar. Entonces, si desea tener 3 nodos apuntando a la misma URL, cada nodo debe tener su propia ruta y es clave, definida en MvcSiteMapNodeAttribute.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top