代码之家  ›  专栏  ›  技术社区  ›  Mathias F

将参数映射到模型时使用哪种语言?

  •  2
  • Mathias F  · 技术社区  · 15 年前

    我在InvariantCulture(16.4)中发布了一个decimalFormValue,很惊讶它没有到达我的德国系统上的模型。

    我不得不使用德语格式(16,4)。是否有方法配置用于分析参数的语言?

    编辑: 调试到源代码后,在ValueProviderDictionary中找到语言特定的部分

    通俗小说。文件内容如下:

    1. 提交申请表(应了解文化)
    2. 来自RouteData的值(可以来自键入的URL或路由的默认值)
    3. URI查询字符串

    1.采用当前文化 2、3。采用不变文化

    这对我不起作用:如果我发布一个值或将其放入querystring中,我就不会期望在使用区域性方面有不同的行为。 如果用户手工填写可分析的值可能是必需的,但是如果您为列表框填写值,这很奇怪。我认为理想的解决方案是,如果我能在两个版本之间切换。

    无论如何,我现在需要找到一种方法来设置CultureInfo.CurrentCulture,然后才能调用PopulatedDictionary。我就是这样做的:

            void Application_BeginRequest(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
    
        }
    
    2 回复  |  直到 15 年前
        1
  •  3
  •   Eric MSFT    15 年前

    默认分析使用当前区域性。但是,所有的分析方法都采用一个iformatProvider(它可以是CultureInfo,也可以取决于您要分析的内容、NumberFormatInfo或DateTimeFormatInfo)。您应该对此方案使用InvariantCulture(后端中未显示给用户的任何内容都应该使用InvariantCulture)。

        2
  •  0
  •   Mathias F    15 年前

    这解决了问题。 但是要注意:如果用户以本地格式输入值,则不会对其进行解析。 这在我的申请中很难实现。希望我使用的UI组件将允许显示和发布值的不同区域性。

        void Application_BeginRequest(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
    
        }