2011-02-20 52 views
3

我已经将我的经典asp.net mvc视图转换为razor。在视图中存在的HtmlHelper的扩展方法(它具有过载)的使用:在asp.net中定制HtmlHelper扩展方法的使用问题mvc razor

@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)' 有一些无效参数

什么这些错误的原因?我该如何纠正它?

回答

6

剃刀分析器看到<,并认为它是一个HTML标记。因此,它仅解析Html.CustomAction作为表达式。

你需要用括号中的呼叫,迫使它把整个呼叫作为单个表达式:

@(Html.CustomAction<AccountController, LogOnModel>("displayText", x => x.Register())) 
相关问题