用逗号分隔数字与asp.net mvc

use*_*161 8 format asp.net-mvc numbers data-annotations asp.net-mvc-2

我正在开发一个MVC2应用程序.

我使用数据注释来验证数据(客户端和服务器端).我的模型中有几个字段只允许十进制值.一旦用户键入十进制值,我希望它转换为逗号分隔更可读的格式.例如,1200应格式化为1,200,而500应保持原样.

这是我的模型:

public virtual GrossFee? Fee { get; set; }
Run Code Online (Sandbox Code Playgroud)

以下是它在视图中的表现:

%: Html.TextBoxFor(model => model.GrossFee)%>
Run Code Online (Sandbox Code Playgroud)

任何关于此的想法将受到高度赞赏.

谢谢!

Mic*_*uso 12

而不是Html.TextBoxFor你可以使用Html.EditorFor和视图尊重这样的数据注释:

模型:

(我不知道是什么GrossFee?,但让我们假设它是一个小数)

[DisplayFormat(DataFormatString = "{0:0,0}")]
public virtual Decimal? Fee { get; set; }
Run Code Online (Sandbox Code Playgroud)

视图:

Html.EditorFor(model => model.GrossFee)
Run Code Online (Sandbox Code Playgroud)

您可能还需要调整HtmlEncode和ApplyFormatInEditMode以适合您的特定应用程序.

一旦输入(即回发之前)将文本框内容转换为逗号分组数字的任何内容都需要基于javascript.

  • 这是用逗号模拟绑定小数的"官方"解决方案.http://haacked.com/archive/2011/03/19/fixing-binding-to-decimals.aspx (2认同)

小智 5

[DisplayFormat(DataFormatString = "{0:n}")]
public virtual GrossFee? Fee { get; set; }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮到你