1

最近、ASP.Net MVC プロジェクトを MVC 2.0 Preview 2 から MVC 2.0 Beta に移行したところ、MVC 2.0 Beta で新しい RenderAction メソッドが導入されたため、Html.RenderAction への呼び出しが壊れました。

次の行で:

<% Html.RenderAction("DisplayIMHandles", "UserProfile", new { userProfileId = Model.Id }); %>

次のエラーが表示されます。

コンパイラ エラー メッセージ: CS0121: 次のメソッドまたはプロパティの間で呼び出しがあいまいです:

「System.Web.Mvc.Html.ChildActionExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string, string, object)」および「Microsoft.Web.Mvc.ViewExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string,文字列、オブジェクト)'

行を次の 2 つの選択肢のいずれかに置き換えることで、問題を解決できます。

<% Microsoft.Web.Mvc.ViewExtensions.RenderAction
(this.Html, "DisplayIMHandles", "UserProfile", new { userProfileId = Model.Id }); %>

また

<% System.Web.Mvc.Html.ChildActionExtensions.RenderAction
(this.Html, "DisplayIMHandles", "UserProfile", new { userProfileId = Model.Id }); %>

どちらを使用する必要がありますか?違いは何ですか? また、以前のように、名前空間全体を書き込まずに問題を解決する方法はありますか?

前もって感謝します。

4

1 に答える 1

4

これは、まだ古い先物ライブラリを参照していて、メインの MVC ライブラリ (ベータ) に引き継がれたため、2 つの場所にあるためです。

修正したい場合は、ベータ リリースで使用する新しい先物ライブラリをダウンロードし、古いものではなくプロジェクトで参照してください。

ASP.NET CodePlexサイトで見つけることができます。

HTH、
チャールズ

于 2009-11-26T01:11:47.430 に答える