0

次のカスタム HtmlHelper 署名があります。

 public static MvcHtmlString MessageBox(this HtmlHelper htmlHelper, string name, object value, object htmlAttributes = null) {...}

このヘルパーをかみそりのビューで次のように使用します。

@Html.MessageBox("msg", ViewBag.Message)

動作しますが、ビューが厳密に型指定されている場合、次のエラーが発生しました:

コンパイラ エラー メッセージ: CS1973: 'System.Web.Mvc.HtmlHelper' には 'MessageBox' という名前の適用可能なメソッドがありませんが、その名前の拡張メソッドがあるようです。拡張メソッドは動的にディスパッチできません。動的引数をキャストするか、拡張メソッド構文を使用せずに拡張メソッドを呼び出すことを検討してください。

モデルをアタッチする必要がないので、新しいメソッドを作成せずにそれを修正する方法を考えています。

ありがとう!

4

1 に答える 1

0

拡張メソッドは、へMessageBox(string, Message)の呼び出しが実際にはへの呼び出しであることを理解できないと思いますMessageBox(string, object)。あなたはただあなたをにキャストする必要がありMessageますobject

@Html.MessageBox("msg", (object) new Message("Hola Mundo"))
于 2012-04-16T21:13:11.400 に答える