我确实有下面的MVC视图元素,并且我试图在1000分隔符中显示数据而没有小数。我尝试在数据注释中应用“ {0:C0}”,“ {0:N0}”(选项1),以便当从数据库中提取数据并在视图中显示数据时,将应用注释。它不起作用
例如:1000000 => 1,000,000
选项1
[Display(Name = "Services", ResourceType = typeof(Resources.Labels))]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C0}")]
public int? Services { get; set; }
作为选项2,我尝试在下面的代码段中以1,000,000的格式显示提取的数据,但在post方法中,字段值始终为null。可以以1,000,000格式显示数据的任何输入,但涉及后端时,仍应传递值1000000。
选项2
<div class="notified-option-value cell border-top border-right" id=@("value-container" + i)>
@Html.TextBoxFor(m => m.OptionsEditViewModel.AddCoverageBBR[k].AddCoverage.Services, "{0:C0}", new { id = "limit-of-coverage-value" + i, @class = "option-value cell" })
</div>
答案 0 :(得分:0)
在这种情况下,您有两种选择。
将输入设置为输入 text 并使用诸如onblur
,onchange
或onkeyup
之类的输入事件来格式化内容,有些jQuery库可以处理这个。
1,000,000
之类的内容时,该字段将被接受(而不是null),并在C#代码中进行处理,在这种情况下,将属性与getter和setter一起使用可能会有所帮助。