2011-02-20 51 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())) 
相關問題