【发布时间】:2011-12-21 08:20:08
【问题描述】:
我正在使用带有 Razor 视图引擎的 ASP.NET MVC 3 进行编程。以下是我想做的事情:
@Html.DisplayWithLabel(model => model.DisplayEventDate(), "When", "")
DisplayWithLabel 是一个自定义 HTML 帮助器,它显示带有标签的内容。
这是它的签名(或者至少我认为它应该是这样的):
public static MvcHtmlString DisplayWithLabel<TModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, Func<MvcHtmlString>>> expression, string label, string cssClass)
为什么我要这样使用我的模型?好吧,我想为我的模型提供扩展方法,这将帮助我在必要时格式化其数据(而不是在模型本身内部格式化数据)。例如格式化事件日期我有这个扩展方法:
public static MvcHtmlString DisplayEventDate(this MyEntity entity)
{
return new MvcHtmlString(string.Format("{0}@{1}", string.Format("{0:D}", entity.EventDate),
string.Format("{0:t}", entity.EventDate)));
}
但是当我尝试浏览视图时,我收到一条错误消息,指出无法从 MvcHtmlString 隐式转换为 Func<MvcHtmlString>。
我试图自己弄清楚,但我找不到线索,所以请帮助我:)
【问题讨论】:
标签: asp.net-mvc-3 razor lambda html-helper