使显示使用模板作为显示

时间:2015-03-19 15:42:20

标签: c# asp.net-mvc

我有一个包含金额和货币的CurrencyAmount类型。

我有一个扩展方法,可以在这样的视图中显示这种类型:

public static MvcHtmlString Display(this HtmlHelper html, Quipu.Eba.Model.CurrencyAmount currencyAmount, object htmlAttributes = null)
{
    String value = currencyAmount.Amount.ToString("N2") + " " + currencyAmount.Currency.IsoCode;
    return new MvcHtmlString(value);
}

然后在视图中我称之为:

Html.Display(TransferAmount)

我现在的问题是,如果我想用DisplayFor调用这个属性,我应该写一个模板意味着重复代码。

如何让我的方法显示尝试查找是否有模板,比如DisplayFor会做什么?

这样我可以统一来自Display和DisplayFor的调用来访问同一个模板。

1 个答案:

答案 0 :(得分:0)

只需使用DisplayFor即可添加部分视图:

<强>视图\共享\ DisplayTemplates \ CurrencyAmount.cshtml

@model Quipu.Eba.Model.CurrencyAmount

@(Model.Amount.ToString("N2") + " " + Model.Currency.IsoCode)

最后,在您看来:

@Html.DisplayFor(m => m.TransferAmount)