C# MVC TextBoxFor中十进制数的值按小数位数展开

C# MVC TextBoxFor中十进制数的值按小数位数展开,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,打开包含小数位数的数字(本例中设置为4)的(razor)页面时,逗号分隔符被解释为千位分隔符,该分隔符将数字按小数位数展开,如图所示: 这发生在NopCommerce 3.8开发树的管理面板中,并且仅发生在远程服务器上。我在本地调试版本中没有发现此问题,因此这可能与服务器设置甚至底层数据库(Microsoft SQL server)有关。我不确定这是否是一个商业问题,所以我不会把它限制在那个标签上 我知道,由于剑道网格的工作方式,NopCommerce正在管理小组中强制推行en文化。同样,我不

打开包含小数位数的数字(本例中设置为4)的(razor)页面时,逗号分隔符被解释为千位分隔符,该分隔符将数字按小数位数展开,如图所示:

这发生在NopCommerce 3.8开发树的管理面板中,并且仅发生在远程服务器上。我在本地调试版本中没有发现此问题,因此这可能与服务器设置甚至底层数据库(Microsoft SQL server)有关。我不确定这是否是一个商业问题,所以我不会把它限制在那个标签上

我知道,由于剑道网格的工作方式,NopCommerce正在管理小组中强制推行en文化。同样,我不确定这是否与实际问题有关

这个问题还体现在文本框不允许使用“,”字符这一事实上。我只能使用“.”。尝试保存一个类似“0.20”的数字将以以下消息终止:

值“0.2000”对…无效

更新1(Global.asax.cs中的区域设置):

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文化,因此我甚至不能在数字字段中写“,”。至少在我看来是这样的。