我正在开发MVC2应用程序。
我使用数据注释来验证数据(客户端和服务器端)。我的模型中有几个字段只允许十进制值。一旦用户键入十进制值,我希望它转换为逗号分隔更可读的格式。例如,1200应格式化为1,200,而500应保持原样。
这是我的模特:
public virtual GrossFee? Fee { get; set; }
以下是该观点:
%: Html.TextBoxFor(model => model.GrossFee)%>
任何关于此的想法都将受到高度赞赏。
谢谢!
答案 0 :(得分: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。
答案 1 :(得分:5)
[DisplayFormat(DataFormatString = "{0:n}")]
public virtual GrossFee? Fee { get; set; }
希望这可以帮到你
答案 2 :(得分:4)
drPastDateDetail[strMS] = decValue.ToString();
如果您希望用逗号显示数值,而不是以上行,以下代码将帮助您 -
String Test = String.Format("{0:#,#.##}",decValue);
drPastDateDetail[strMS]=Test;
答案 3 :(得分:0)
我将这行代码放在我的控制器中
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>
答案 4 :(得分:-1)
你应该可以在tostring中使用格式
var foo = 1200.2;
var bob = foo.ToString("#,###.00##");