J'ai installé le site web forms (4.0) avec UrlRouting. Ma mie de pain apparaît quand je vais àPlan du site/Fil d'Ariane n'apparaissant pas avec le routage Url sur la page par défaut
Mon principal problème est avec http://Localhost/
Comme il est en défaut de http://Localhost/default.aspx dans IIS
Je suis essayer d'éviter la route d'ajouter un autre élément au sitemap xml like
<siteMapNode url="~/Home" title="Home" description="Home" aspx="default.aspx">
Quelle serait la meilleure approche à utiliser?
J'ai essayé d'ajouter ceci à ma table de routage & en utilisant un xmlSiteMapProvider pour voir si je pouvais ainsi quelque chose avec elle (qui ne fonctionnait pas).
routes.MapPageRoute("IISDefault", "", "~/Default.aspx");
Voici quelques informations.
Routes
routes.MapPageRoute("Default", "Home", "~/Default.aspx");
routes.MapPageRoute("ListAll", "List", "~/ListAll.aspx");
Sitemap
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Home" title="Home" description="Home">
<siteMapNode url="~/List" title="List All" description="List All" />
</siteMapNode>
</siteMap>
XmlSiteMapProvider
/// <summary>
/// This is where the original sitemap node is overloaded. We get the proper translation from the database.
/// </summary>
/// <param name="sender">This is the sender of the event</param>
/// <param name="e">This is the event arguments</param>
/// <returns>Returns a modified SiteMapNode</returns>
/// <remarks></remarks>
public SiteMapNode SmartSiteMapProvider_SiteMapResolve(object sender, SiteMapResolveEventArgs e)
{
SiteMapNode returnValue = null;
if ((SiteMap.CurrentNode == null))
{
// If we don't find a sitemap node, then we might be working with UrlRouting
returnValue = ProcessRoute(e);
}
return returnValue;
}
private SiteMapNode ProcessRoute(SiteMapResolveEventArgs e)
{
SiteMapNode returnValue = null;
System.Web.Routing.RequestContext rc = HttpContext.Current.Request.RequestContext;
if ((rc != null))
{
System.Web.Routing.RouteBase route = rc.RouteData.Route;
if ((route != null))
{
// Play with the node (Never getting here)
}
}
return returnValue;
}
Edit: Je vais voir si je peux manipuler le RouteCollection pour obtenir un match en quelque sorte.
Merci pour la réponse Wardy. Je vais devoir revenir dans le swing des choses pour ce code. Cela fait longtemps. J'ai essayé de mettre votre url = "~ /" title = "home" dans mon sitemap mais en vain.Le fil d'Ariane ne vient pas quand je vais au Http: // yourdomain. – Lareau
Qu'attendez-vous de voir dans le fil d'ariane ??? ... pour une page d'accueil techniquement il n'y a pas un fil d'Ariane parce que la miette de pain montre le chemin vers la racine de votre position actuelle ainsi la page d'accueil est une sorte d'exception ... J'ai tendance à coder un lien vers ~/si Je pense que c'est pertinent ... la chose est ... si vous êtes sur la page d'accueil, pourquoi afficheriez-vous un lien vers la page d'accueil? – War
Bon point, j'ai toujours supposé que si vous étiez sur la page d'accueil, on dirait simplement Home mais sans lien. De ma recherche rapide google, les gens l'enlèvent simplement de la page d'accueil. Merci pour l'astuce – Lareau