这里我正在使用国际化但是在研究了Culter和UICulter之后,在Controller初始化中初始化为什么? 我还评论代码初始化代码但工作原样。 那么为什么我们在控制器级别初始化
here is my code
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
//if (Session["CurrentCulture"] != null)
//{
// Thread.CurrentThread.CurrentCulture = new CultureInfo(Session["CurrentCulture"].ToString());
// Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["CurrentCulture"].ToString());
//}
}
答案 0 :(得分:0)
主要原因是Controller的初始化在它执行的每个操作之前完成,并在Asp.Net MVC的管道中建模绑定器。
如果您在操作级别设置CurrentCulture
和CurrentUICulture
,则可以在剃刀视图上以不同语言显示信息。
但是,如果您需要在Validation属性的帮助下提供不同语言的验证消息,例如RequiredAttribute,则必须在初始化而不是操作级别设置它们,因为模型绑定器在操作执行之前。