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

问题描述 投票:8回答:5

我正在研究MVC2应用程序。

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

这是我的模型:

public virtual GrossFee? Fee { get; set; }

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

%: Html.TextBoxFor(model => model.GrossFee)%>

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

谢谢!

asp.net-mvc asp.net-mvc-2 numbers format data-annotations
5个回答
11
投票

您可以使用Html.TextBoxFor而不是Html.EditorFor,并使视图尊重数据注释,如下所示:

模型:

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

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

视图:

Html.EditorFor(model => model.GrossFee)

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

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


5
投票
[DisplayFormat(DataFormatString = "{0:n}")]
public virtual GrossFee? Fee { get; set; }

希望这可以帮到你


4
投票
drPastDateDetail[strMS] = decValue.ToString();

如果您希望用逗号显示数值,而不是以上行,以下代码将帮助您 -

String Test = String.Format("{0:#,#.##}",decValue);
drPastDateDetail[strMS]=Test;

0
投票

我把这行代码放在我的Controller中

public ActionResult Index()

{

        TempData["TotalPaid"] = totalAmountPaid.ToString("#,###.00");

}

And i put this in my View

   <table>
       <tr>
         <td style="color:green; font-weight:bold" >
            Amount Paid: $@TempData["TotalPaid"]
       </td>
    </tr>        
</table>

-1
投票

您应该能够在tostring中使用Format

var foo = 1200.2;
var bob = foo.ToString("#,###.00##");
© www.soinside.com 2019 - 2024. All rights reserved.