【发布时间】:2016-06-06 23:39:22
【问题描述】:
如果您定义了自定义 DisplayTemplate,有没有办法使用为该对象定义的 DisplayFormat.DataFormatString?
例如,我为 Double 定义了一个 DisplayTemplate:
<div class="form-group">
@Html.Label("", ViewData["label"] as string, new { @class = "col-sm-6" })
<p class="col-sm-6">
@Html.DisplayTextFor(m => m)
</p>
</div>
然后我的模型定义了一个DisplayFormat:
[Display(Name = "In Weight")]
[DisplayFormat(DataFormatString = "{0} lb")]
public double? InWeight{ get; set; }
在上面的示例中,DisplayTextFor 只提供了一个简单的 ToString(),而将其替换为 DisplayFor 不会呈现任何内容。
【问题讨论】:
-
当您没有关联的表单控件时,为什么要使用
@Html.Label()。DisplayFor()不起作用的原因是它会继续调用自己。您可以访问属性ModelMetadata以生成格式化值 -
@StephenMuecke 你是对的,在这种情况下使用
dl描述列表可能更合适,但是对于格式化值的问题是相同的。
标签: asp.net asp.net-mvc razor asp.net-mvc-5