public abstract class MyBaseClass
{
[DisplayFormat(DataFormatString = "{0:0.00}")]
public virtual decimal Value
{
get { return 1.23456m; }
}
}
public class MyDerivedClassA : MyBaseClass
{
[DisplayFormat(DataFormatString = "{0:0.0}")]
public override decimal Value
{
get { return 9.87654m; }
}
}
...
public class MyDerivedClassZ : MyBaseClass
{
[DisplayFormat(DataFormatString = "{0:0.000}")]
public override decimal Value
{
get { return 7.654321m; }
}
}
-
@model MyBaseClass
@Html.DisplayFor(m => @Model.Value)
当将上面的每个对象传递到剃刀视图时,我希望得到...
然而,DisplayFormat似乎没有与属性一起覆盖,而是我得到......
有谁知道怎么解决这个问题?
编辑:
对不起,不清楚。如果我有n * Derived Classes
我怎么能以一种不涉及每种类型的新文件的方式解决问题?
答案 0 :(得分:0)
您可以编写自定义显示模板(~/Views/Shared/DisplayTemplates/MyDerivedClass.cshtml
):
@model MyDerivedClass
@Html.DisplayFor(x => x.Value)
然后在主Index.cshtml
视图中:
@model MyBaseClass
@Html.DisplayForModel()