【发布时间】:2020-01-16 08:06:32
【问题描述】:
我有这个视图模型:
public class ConceptViewModel
{
public int Id { get; set; }
[Required(ErrorMessageResourceName = "Message_Required", ErrorMessageResourceType = typeof(Resources.Web.ValidationsViewModels))]
[Display(Name = "ConceptViewModel_Name", ResourceType = typeof(Resources.Web.Contracts))]
public string Concept { get; set; }
[Required(ErrorMessageResourceName = "Message_Required", ErrorMessageResourceType = typeof(Resources.Web.ValidationsViewModels))]
[Display(Name = "ConceptViewModel_TotalUnits", ResourceType = typeof(Resources.Web.Contracts))]
[DisplayFormat(DataFormatString = "{0:###,###}")] // Ignored by @Html.DisplayFor()
public decimal TotalUnits { get; set; }
}
该视图模型位于另一个视图模型的集合属性中,该属性恰好是传递给视图的视图模型:
public class ContratConceptsViewModel : BaseClass
{
public int ContratId { get; set; }
// This collection
public List<ConceptViewModel> Concepts { get; set; }
public ContratConceptsViewModel()
{
Concepts = new List<ConceptViewModel>();
}
}
然后,在视图内部,我有以下代码:
@model ContratConceptsViewModel
@foreach (var concept in Model.Concepts)
{
<thead>
<tr>
<td> @Html.DisplayNameFor(model => concept.Concept) </td> @* Works as expected *@
<td> @Html.DisplayNameFor(model => concept.TotalUnits) </td> @* Works as expected *@
</tr>
</thead>
<tbody>
<tr>
<td> @Html.DisplayFor(model => concept.Concept) </td>
<td> @Html.DisplayFor(model => concept.TotalUnits) </td> @* Doesn't show the correct format *@
</tr>
</tbody>
}
当我执行此代码时,[Display] 属性被考虑在内,但 [DisplayFormat] 属性被完全忽略。我做错了什么?
注意:我已经搜索过类似这样的问题,尽管还有许多其他标题相似的问题,但它们与这个不同。
【问题讨论】:
-
,应该是组分隔符还是小数分隔符?向我们展示数据、预期格式和错误显示格式的示例
标签: asp.net asp.net-mvc asp.net-mvc-5