gpt4 book ai didi

asp.net-mvc - 如何全局化 ASP.NET MVC View (特别是十进制分隔符)?

转载 作者:行者123 更新时间:2023-12-03 14:18:55 25 4
gpt4 key购买 nike

我正在使用 NerdDinner sample application并到达处理虚拟地球 map 的部分。应用程序存储一些经度和纬度值。不幸的是,在我的系统上,浮点数以逗号作为小数点分隔符存储,而不是像美国那样使用点。因此,如果我的纬度为 47.64,它会被检索并显示为 47,64。因为该值是在对 Virtual Earth API 的函数调用中传递的,所以它在该点失败(例如 JavaScript API 期望 47.64、-122.13,但得到 47,64、-122,13)。

我需要确保应用程序始终使用点。在 WebForms 应用程序中,我将有一个通用类覆盖 System.Web.UI.Page.InitializeCulture()方法,我将从该类继承我的页面。

我不确定如何对 MVC 做同样的事情。我需要定制吗ViewPage或者其他的东西?有没有容易 解决这个问题的方法?例子?

最佳答案

因为设置<globalization/> to en-US 根本没有帮助我决定创建一个自定义类来初始化正确的文化设置并确保所有需要这种行为的 View 都是从我的自定义类继承的。

NerdDinnerViewPage.cs:

using System.Globalization;
using System.Threading;
using System.Web.Mvc;

namespace NerdDinner.Views
{
public class NerdDinnerViewPage<T> : ViewPage<T> where T : class
{
protected override void InitializeCulture()
{
base.InitializeCulture();

Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;

if (Thread.CurrentThread.CurrentCulture != null)
{
Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
}
}
}
}

编辑.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="NerdDinner.Views.NerdDinnerViewPage<NerdDinner.Models.DinnerFormViewModel>" %>

关于asp.net-mvc - 如何全局化 ASP.NET MVC View (特别是十进制分隔符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/760258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com