3

MVC3 アプリケーションを MVC4 にアップグレードしたところ、実行時にエラーが発生しました。(見栄えを良くするためにトリミングしています)

エラー CS0121: 次のメソッドまたはプロパティの間で呼び出しがあいまいです: ' MyWebCore.HtmlHelperExtensions.LabelFor<CoreViewModel,string>(System.Web.Mvc.HtmlHelper<CoreViewModel>, System.Linq.Expressions.Expression<System.Func<CoreViewModel,string>>, object)' と
' System.Web.Mvc.Html.LabelExtensions.LabelFor<CoreViewModel,string>(System.Web.Mvc.HtmlHelper<CoreViewModel>, System.Linq.Expressions.Expression<System.Func<CoreViewModel,string>>, object)'

LabelHelperExtensionsメソッドを含む独自のクラスがありますLabelFor。私の両方の Web.config ファイルには、MVC4 への参照が含まれています。MVC の代わりに拡張メソッドを使用するにはどうすればよいですか?

私のweb.config:add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35

マイ ビュー/web.config:add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc"

4

3 に答える 3

1

まず、これを行う別の方法が既にあるのに、なぜ MVC の LabelFor 拡張機能をオーバーライドしようとしているのですか?

http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs

あなたがしていることをしている正当な理由があるかもしれませんが、私にはわかりませんが、これらのヘルパーを拡張するサポートされている方法を調べたいと思います.

于 2013-08-26T13:04:23.380 に答える
1

LabelFor メソッドを含む独自の LabelHelperExtensions クラスがあります。MVC の代わりに拡張メソッドを使用するにはどうすればよいですか?

唯一のオプションではありませんが、既知の拡張メソッドとの衝突を避けるためにメソッドの名前を変更するのが最もクリーンです。静的メソッドを直接呼び出すこともできますが (メソッドの前に静的クラス名を付ける)、拡張メソッドを使用する目的が無効になります。

于 2013-08-26T13:00:06.203 に答える