【发布时间】:2016-08-29 18:21:55
【问题描述】:
我想将模板参数传递给我的辅助方法以呈现错误。我已经看到了几个这样做的示例,但似乎要求在调用帮助程序时模板中的变量在范围内。
例如Expression of HelperResult to format item from a list
我希望做类似的事情:
public static MvcHtmlString ErrorBlock<TModel>(this HtmlHelper helper, TModel model, string @class = null, object context = null, string view = null, object attributes = null, Func<ErrorModel,HelperResult> errorTemplate = null)
where TModel : ErrorModel
...
@ShopMR.ErrorBlock(Model, errorTemplate: r => @<div>@r.Message</div>)
但我得到以下编译器错误:
- 无法将 lambda 表达式转换为预期的委托类型,因为 块中的某些返回类型不可隐式转换 到委托返回类型
- 无法将 lambda 表达式转换为类型“HelperResult”,因为它不是委托类型
我尝试创建一个委托,但它导致了同样的错误。这可能吗?我的 func 是否应该返回一些可以编译/评估为 Razor 文本的其他类型?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 razor