2011-02-20 11 views
3

私は古典的なasp.net MVCビューをかみそりに変換しました。ビューではそこのHtmlHelperの拡張メソッド(それはオーバーロードがあります)の使用である:asp.net mvc razorのカスタム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)' のオーバーロードされたメソッドの試合 は何ですか、いくつかの無効な引数

を持っていますこれらのエラーの理由は?どうすれば修正できますか?

答えて

6

Razorパーサーは<を見て、それがHTMLタグだと考えます。したがって、式としてHtml.CustomActionを解析するだけです。

あなたは、単一の式として全体のコールを処理するためにそれを強制するために括弧で呼び出しをラップする必要があります。

@(Html.CustomAction<AccountController, LogOnModel>("displayText", x => x.Register())) 
関連する問題