Siguiendo los tutoriales que he ido encontrando en distintas webs he conseguido poder establecer el meta title y el description de todas las páginas de mi site desde el Master.Page usando los datos del web.sitemap
Es relativamente sencillo:
Código:
Si queréis más información lo saque de este tutorial:if (SiteMap.CurrentNode["PageHeader"] != null) { lit_PageHeader.Text = SiteMap.CurrentNode["PageHeader"].ToString(); } if (SiteMap.CurrentNode != null) { Page.Title = SiteMap.CurrentNode.Title; if (SiteMap.CurrentNode["keywords"] != null) { HtmlMeta meta = new HtmlMeta(); meta.Name = "keywords"; meta.Content = SiteMap.CurrentNode["keywords"]; Page.Header.Controls.AddAt(1,meta); } if (SiteMap.CurrentNode.Description != null) { HtmlMeta meta = new HtmlMeta(); meta.Name = "Description"; meta.Content = SiteMap.CurrentNode.Description.ToString(); Page.Header.Controls.AddAt(2,meta); } }
http://www.programminghelp.com/web-development/asp-net/using-sitemap-and-masterpages-to-set-meta-tags-in-asp-net-and-c/
Pero mi web usa 2 sitemap.providers dependiendo del idioma de elección del usuario.
He conseguido que los distintos controles web (menu, sitemappath, ...) usen el SiteMapProvider necesario en cada caso.
Lo que no consigo de ningún modo es poder cambiar el provider usado en la masterpage en el momento de establecer los metas.
Alguna idea?
Gracias.