我已将经典的asp.net mvc视图转换为剃刀。在视图中,使用了HtmlHelper的扩展方法(它有重载):
@Html.CustomAction<AccountController, LogOnModel>("displayText", x => x.Register())
CustomAction签名是:
public static HtmlString CustomAction<TController, TModel>(this HtmlHelper<TModel> view, string displayText, Expression<Func<TController, object>> where TController : Controller
我还在构建时启用了视图编译(通过.proj文件)。当我构建项目时,我得到指向该行的这些错误:
参数1:无法转换 '方法组'来 'System.Web.WebPages.HelperResult'
最佳重载方法匹配 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' 有一些无效的论点
这些错误的原因是什么?我该如何纠正?
答案 0 :(得分:6)
Razor解析器看到<
并认为它是HTML标记。因此,它只解析Html.CustomAction
作为表达式。
您需要将调用包装在括号中以强制它将整个调用视为单个表达式:
@(Html.CustomAction<AccountController, LogOnModel>("displayText", x => x.Register()))