下面的代码工作正常,但在文本框中的十进制值具有此格式“0,0000”
(,是小数分隔符)。我想只有两个十进制。我如何做到这一点?
(,是小数分隔符)。我想只有两个十进制。我如何做到这一点?
谢谢,
//Database model used with NHibernate public class Bank { public virtual int Id { get; set; } public virtual string FirstName { get; set; } public virtual string LastName{ get; set; } public virtual decimal Amount { get; set; } } //MVC Model public class MyModel { public Bank Bank { get; set; } } //View @Html.TextBoxFor(m => m.Bank.Amount,new { id = "tbAmount"})
更新1
在调试器中,我没有看到任何小数,wehn我一步一步地在里面(o @ HTML.Textbofor)的视图,该值没有任何小数,但是当页面显示有4个小数
//Database model used with NHibernate public class Bank { public virtual int Id { get; set; } public virtual string FirstName { get; set; } public virtual string LastName{ get; set; } public virtual decimal Amount { get; set; } } //Class for view public class ViewBank { [DisplayFormat(DataFormatString = "{0:n2}",ApplyFormatInEditMode = true)] public decimal Amount { get; set; } } //MVC Model public class MyModel { public Bank Bank { get; set; } var ViewBank = new ViewBank() { Amount = Bank.Amount}; } //View @Html.TextBoxFor(m => m.Amount,new { id = "tbAmount"})
更新2
我做了一个小工作例子:http://goo.gl/RKtwY
解决方法
我会使用编辑器模板,我不会使用我的NHibernate域模型在我的意见。我将定义视图模型,这是专门针对给定视图的要求(在这种情况下限制到2小数的要求):
[DisplayFormat(DataFormatString = "{0:n2}",ApplyFormatInEditMode = true)] public decimal Amount { get; set; }
接着:
@Html.EditorFor(m => m.Bank.Amount)