24

acsx ファイルで Html.RenderPartial を使用しようとすると、エラーが発生します。

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

<a href="/projects/<%=project.Id %>">
  <% Html.Label("fdf"); %>
  <% Html.RenderPartial("ProjectName", Model.Id); %></a></li>
 <%} %>

ただし、必要な名前空間をインポートしたので、エラーにはなりません

<% Html.Label("fdf"); %>

ascx ファイルで Html.RenderPartial を使用する方法はありますか?

4

3 に答える 3

41

モデルが であるため、コンパイラは正しいメソッドを選択できませんdynamic。呼び出しを次のように変更します。

<% Html.RenderPartial("ProjectName", (int)(Model.Id)); %>

または他のデータ型 Id です。

于 2010-09-29T14:29:19.660 に答える
8

他の誰かが私がしたのと同じ間違いをした場合:

@Model MyViewModel

これにより、モデルが動的として扱われます

@model MyViewModel

これは正しく厳密に型指定されたビューです。大文字がないことに注意してください。

元の質問とは異なり、これはRazorであることに注意してください。

于 2012-06-05T10:55:29.150 に答える
2

私が合格することがわかった唯一の方法。IEnumerable は、ローカル変数を作成してこれを渡すことでした。例えば @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); }

Html.RenderPartial("_FriendsList", (IEnumerable<Demo.Models.Friends>)(Model.Friends));動作しませんでした!

于 2011-11-29T12:37:33.023 に答える