为什么我们在控制器初始化时启动culter

时间:2017-09-06 05:20:38

标签: asp.net-mvc internationalization

这里我正在使用国际化但是在研究了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());
        //}
    }

1 个答案:

答案 0 :(得分:0)

主要原因是Controller的初始化在它执行的每个操作之前完成,并在Asp.Net MVC的管道中建模绑定器。

enter image description here

如果您在操作级别设置CurrentCultureCurrentUICulture,则可以在剃刀视图上以不同语言显示信息。

但是,如果您需要在Validation属性的帮助下提供不同语言的验证消息,例如RequiredAttribute,则必须在初始化而不是操作级别设置它们,因为模型绑定器在操作执行之前。