我正在研究MVC2应用程序。
我使用数据注释来验证数据(客户端和服务器端)。我的模型中有几个字段只允许十进制值。一旦用户键入十进制值,我希望它转换为逗号分隔更可读的格式。例如,1200应格式化为1,200,而500应保持原样。
这是我的模型:
public virtual GrossFee? Fee { get; set; }
以下是它在视图中的表现:
%: Html.TextBoxFor(model => model.GrossFee)%>
任何关于此的想法将受到高度赞赏。
谢谢!
您可以使用Html.TextBoxFor
而不是Html.EditorFor
,并使视图尊重数据注释,如下所示:
模型:
(我不知道GrossFee?
是什么,但我们假设它是一个小数)
[DisplayFormat(DataFormatString = "{0:0,0}")]
public virtual Decimal? Fee { get; set; }
视图:
Html.EditorFor(model => model.GrossFee)
您可能还需要调整HtmlEncode和ApplyFormatInEditMode以适合您的特定应用程序。
一旦输入(即回发之前)将文本框内容转换为逗号分组数字的任何内容都需要基于javascript。
[DisplayFormat(DataFormatString = "{0:n}")]
public virtual GrossFee? Fee { get; set; }
希望这可以帮到你
drPastDateDetail[strMS] = decValue.ToString();
如果您希望用逗号显示数值,而不是以上行,以下代码将帮助您 -
String Test = String.Format("{0:#,#.##}",decValue);
drPastDateDetail[strMS]=Test;
我把这行代码放在我的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>
您应该能够在tostring中使用Format
var foo = 1200.2;
var bob = foo.ToString("#,###.00##");