【发布时间】:2015-09-27 13:58:02
【问题描述】:
我正在使用 MVC 5.0
我在配置中设置了文化:
<system.web>
<globalization uiCulture="fa-IR" culture="fa-IR" />
</system.web>
我有一个模型如下:
public class MyModel
{
[DisplayName("NbatPersent")]
[Range(0, 100)]
public double NbatPersent{ get; set; }
}
MVC 在 View 中显示 NbatPersent 值,例如 22/5,当我想提交表单时,表单验证器会提醒我 The field NbatPersent must be a number.。无法将 22/5 转换为 22.5
如果我输入 22.5 就可以了,但如果属性有一个值,它会将 . 转换为 /
如何将所有数字属性的文化转换为 en-US 以显示像 22.5 而不像 22/5 这样的值。
编辑:
我使用@Html.TextBoxFor 显示小数属性,因为用户应该更改它。
【问题讨论】:
-
试试这个
@Html.DisplayFor(x => x.NbatPersent,string.Format("{0:0.00}")); -
您是否启用了客户端验证。如果是这样,这是
jquery.validation.js的结果。你可以使用jquery.globalize.js来解决这个问题。并且将22/5更改为22.5是没有意义的,因为当您提交表单时它将在服务器上失败,除非您使用自定义ModelBinder -
@StephenMuecke 我们应该如何使用
jquery.globalize.js。 -
看看this article。您也可以在不使用插件的情况下执行此操作(手动更改验证器),稍后我会为该答案添加一个
标签: c# asp.net-mvc asp.net-mvc-5 culture