Question

J'ai récemment commencé à fournisseur plan du site utilisation marteenba, parce que je ne pouvais pas résoudre un problème d'itinéraire avec l'autre i plan du site eu. Il est bien mieux que mon précédent. Ma question est: comment puis-je créer différents sentiers breadcrumb des pages qui vont à une seule page principale? Considérez l'idée ci-dessous:

Plan du site Structure

<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>

Dans l'exemple ci-dessus, mon fil d'ariane montre toujours le nœud clients Rechercher au lieu d'un autre. Je ne sais pas si devrait créer des itinéraires différents pour chaque type de recherche (je l'ai fait sur mon dernier plan du site, mais malheureusement IIS6 ne m'a pas plu).

Je vous remercie de votre aide.

EDIT

la recherche sur les forums j'ai trouvé une question similaire. Alors, pensez à la structure ci-dessous:

Home >> Search >> Contracts
Home >> Another Search >> Contracts
Home >> Advanced Search >> Contracts
Home >> Web Service Search >> Extra fields >> Contracts
Était-ce utile?

La solution

Eh bien, il semble que tout ce que je devais faire était d'ajouter des nœuds de attributs dynamiques sur mes contrôleurs. Vous pouvez lire comment le faire . En utilisant l'exemple ci-dessus, voici comment faire:

 [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...         
}

Dans l'exemple ci-dessus, chaque type de recherche sera correctement définie sur la piste de navigation. Gardez à l'esprit que vous devez définir des itinéraires différents pour chaque type de « recherche » que vous voulez utiliser. Donc, si vous voulez avoir 3 noeuds pointant vers la même URL, chaque nœud doit avoir sa propre voie et il est la clé, définie sur MvcSiteMapNodeAttribute.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top