我正在使用Spark ViewEngine、ASP.NET MVC和.resx文件。
我想通过我的自定义SessionModel (Session) 设置一种语言,该模型是通过Castle.Windsor进行注册,并具有可由用户设置的Culture字符串属性...
我需要当前语言在每个视图中保持不变,而无需不断地设置当前UICulture。
每次都不需要在每个控制器操作中执行以下操作:
public SessionModel SessionModel { get; set; }
public ActionResult Index()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(SessionModel.Culture);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
}
这种做法的问题在于,如果我进入另一个页面,当前语言环境就会恢复为默认语言。
在Spark视图中,我只需调用以下代码即可获取当前语言环境:
${SR.Home}
SR.resx包含一个名为Home的公共条目。
有没有好的想法来完成这个任务,我应该使用ActionFilter吗?