.NET localizado mapa de base de datos?
-
24-09-2019 - |
Pregunta
Tengo un SiteMapProvider costumbre que carga las páginas de la base de datos.
Páginas (PageID, fk_pageid (padres), título, url, show_in_menu)
Me gustaría globalizar / localizar el title
de la página. ¿Cuál es el mejor método?
Solución
Al crear objetos SiteMapNode, utilice el constructor que le permite especificar las claves de recursos implícitos / explícitos. Recomiendo ir con claves de recursos explícitas.
http://msdn.microsoft.com/en-us/library/ ms150104.aspx
"para especificar mediante programación recursos para la localización, ya sea establecer el valor de implicitResourceKey a un nombre único que se utilizará para identificar los recursos localizados para el nodo o explicitResourceKeys conjunto a una colección NameValueCollection de pares nombre / valor donde nombre es la propiedad nodo o atributo personalizado para localizar y valor contiene los valores de localización para el atributo de propiedad del nodo o la costumbre. los valores localizados a continuación, se pueden establecer en los archivos .resx adecuados. para obtener más información acerca de cómo localizar el título, descripción y propiedades personalizadas de una SiteMapNode objeto, vea Cómo:.. Localizar el sitio-mapa de los datos para los requisitos de sintaxis de la colección explicitResourceKeys, ver NameValueCollection "
Normalmente, para localizar un mapa del sitio estático, se utilizaría una expresión de recursos como el siguiente:. "$Resources:<ClassName>,<KeyName>,<DefaultValue>"
En su lugar, agregue la <ClassName>
, <KeyName>
, y los valores <DefaultValue>
a la explicitResourceKey NameValueCollection en el orden en que aparecen en la expresión, todo ello sumado con la misma clave.
Así que si su expresión habría sido "$Resources:SiteMapResourceFileOrClass,RootNode.Title,My Root Node"
, en vez hacer lo siguiente:
explicitResourceKeys.Add("Title", "SiteMapResourceFileOrClass")
explicitResourceKeys.Add("Title", "RootNode.Title")
explicitResourceKeys.Add("Title", "My Root Node")
Se puede hacer lo mismo para la descripción.