C# MVC TextBoxFor中十进制数的值按小数位数展开
打开包含小数位数的数字(本例中设置为4)的(razor)页面时,逗号分隔符被解释为千位分隔符,该分隔符将数字按小数位数展开,如图所示: 这发生在NopCommerce 3.8开发树的管理面板中,并且仅发生在远程服务器上。我在本地调试版本中没有发现此问题,因此这可能与服务器设置甚至底层数据库(Microsoft SQL server)有关。我不确定这是否是一个商业问题,所以我不会把它限制在那个标签上 我知道,由于剑道网格的工作方式,NopCommerce正在管理小组中强制推行en文化。同样,我不确定这是否与实际问题有关 这个问题还体现在文本框不允许使用“,”字符这一事实上。我只能使用“.”。尝试保存一个类似“0.20”的数字将以以下消息终止: 值“0.2000”对…无效 更新1(Global.asax.cs中的区域设置):C# MVC TextBoxFor中十进制数的值按小数位数展开,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,打开包含小数位数的数字(本例中设置为4)的(razor)页面时,逗号分隔符被解释为千位分隔符,该分隔符将数字按小数位数展开,如图所示: 这发生在NopCommerce 3.8开发树的管理面板中,并且仅发生在远程服务器上。我在本地调试版本中没有发现此问题,因此这可能与服务器设置甚至底层数据库(Microsoft SQL server)有关。我不确定这是否是一个商业问题,所以我不会把它限制在那个标签上 我知道,由于剑道网格的工作方式,NopCommerce正在管理小组中强制推行en文化。同样,我不
if (webHelper.GetThisPageUrl(false).StartsWith(string.Format("{0}admin", webHelper.GetStoreLocation()),
StringComparison.InvariantCultureIgnoreCase))
{
//admin area
//always set culture to 'en-US'
//we set culture of admin area to 'en-US' because current implementation of Telerik grid
//doesn't work well in other cultures
//e.g., editing decimal value in russian culture
CommonHelper.SetTelerikCulture();
}
else
{
//public store
var workContext = EngineContext.Current.Resolve<IWorkContext>();
var culture = new CultureInfo(workContext.WorkingLanguage.LanguageCulture);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
if(webHelper.GetThisPageUrl(false).StartsWith(string.Format(“{0}admin”,webHelper.GetStoreLocation()),
StringComparison.InvariantCultureInogoreCase)
{
//行政区
//始终将文化设置为“en-US”
//我们将管理区域的文化设置为“en US”,因为Telerik网格的当前实现
//在其他文化中不起作用
//e、 在俄罗斯文化中编辑十进制值
CommonHelper.SetTelerikCulture();
}
其他的
{
//公共商店
var workContext=EngineContext.Current.Resolve();
var culture=new CultureInfo(workContext.WorkingLanguage.LanguageCulture);
Thread.CurrentThread.CurrentCulture=区域性;
Thread.CurrentThread.CurrentUICulture=区域性;
}
这似乎是它所使用的文化的一个问题。尝试在web.config中指定要使用的区域性:
<configuration>
<system.web>
<globalization uiCulture="en" culture="en-US" />
有关如何设置区域性,请参见更新1。我以前曾试图打乱你的建议,但从未产生任何效果。关键是管理页面应该始终使用en文化,因此我甚至不能在数字字段中写“,”。至少在我看来是这样的。