나는 당신이 볼 수 있듯이, 나는 두 가지 속성, "놈"을 가지고 다음 클래스MvcSiteMapProvider, DynamicNodeProviderBase 및 세계화
public class MenuVeiculo
{
public string Nome { get; set; }
public string NomeEn { get; set; }
public Guid ID { get; set; }
}
에게있다 "NomeEn을." 각각은 이름과 이름을 영어로 나타냅니다.
Mvc.sitemap
<mvcSiteMapNode key="MenuVeiculo" dynamicNodeProvider="Semep.Extensibilidade.SiteMap.MenuVeiculoDynamicNodeProvider, Semep" title="Menu veiculo" action="Index" controller="Rental">
MenuVeiculoDynamicNodeProvider.cs
public class MenuVeiculoDynamicNodeProvider : DynamicNodeProviderBase
{
public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
{
var context = DependencyResolver.Current.GetService<SemepContext>();
var listDB = (from p in context.MenusVeiculo
select new
{
p.Nome,
p.ID
});
const string keyFormat = "MenuVeiculo_{0}";
foreach (var menu in listDB.ToList())
{
var key = string.Format(keyFormat, menu.ID.ToString().ToUpper());
var root = new DynamicNode(key, menu.Nome)
{
Title = menu.Nome
,
Key = key
};
root.Attributes.Add("id", menu.ID.ToString());
root.RouteValues.Add("id", menu.ID);
yield return root;
}
}
#endregion
}
질문
내 질문은, 어떻게 다중 언어 및 DynamicNodeProviderBase와 함께 작업하는 것입니다? 보시다시피 두 개의 필드가 있으며 하나만 표시합니다. "Thread.CurrentThread.CurrentCulture"의 문제가 MvcSiteMapProvider가 결과를 캐시하는 것입니다,이 문제를 처리하는 방법 :
이