我有一个基于全球化的项目,使用葡萄牙语" pt-PT",所以十进制数与逗号","分开。
如果可能的话,我宁愿不以属性的格式设置逗号。
我现在的代码(型号):
[DisplayFormat(DataFormatString = "{0:#,##}", ApplyFormatInEditMode = true)]
public decimal SizeOpenedWidth { get; set; }
观点:
@Html.EditorFor(model => model.SizeOpenedWidth, new { htmlAttributes = new { @class = "form-control" } })
问题是这个解决方案有逗号","在模型中进行了编码,它显示小数" 11,01",值" 11"。
EDIT1:
我能够找到问题:
{0:#,##} -> {0:#.##}
我替换了","与"。"它现在正在工作,它采用全球化的葡萄牙语格式" 11,01"。
是否可以呈现" 11,1"已经" 11,10"使用这种字符串格式?
EDIT2:
解决方案{0:#。##}会产生问题",1"提出",1"。
答案 0 :(得分:1)
您不需要也不应该对模型中的格式进行硬编码。我不确定为什么不在web.config中使用以下行:
<globalization culture="pt-PT" uiCulture="pt-PT" />
如果问题是2位小数,那么这就是MVC中小数的默认编辑器的工作方式。一个简单的解决方案是使用TextBoxFor而不是EditorFor(因为您实际上不想使用十进制编辑器的功能)。
答案 1 :(得分:0)
如果您的文化使用小数点逗号,则数字格式将用点替换逗号。
来自https://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.110).aspx
确定结果字符串中小数点分隔符的位置。
更多信息:&#34;。&#34;自定义说明符。
0.45678(&#34; 0.00&#34;,en-US) - &gt; 0.46
0.45678(&#34; 0.00&#34;,fr-FR) - &gt; 0,46
所以虽然&#39;。&#39;和&#39;,&#39;用于表示区域设置&#39;小数分隔符和千位分隔符。