在ascx文件中使用Html.RenderPartial()

时间:2010-09-29 14:25:48

标签: asp.net-mvc partial-views renderpartial

我正在尝试在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?

3 个答案:

答案 0 :(得分:40)

编译器无法选择正确的方法,因为您的模型是dynamic。将通话更改为:

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

或任何其他数据类型ID为。

答案 1 :(得分:8)

如果其他人犯了同样的错误我做了:

@Model MyViewModel

这会将您的模型视为动态

@model MyViewModel

这是一个正确的强类型视图。注意缺乏资本化!

请注意,这是Razor,与原始问题不同。

答案 2 :(得分:2)

我发现通过的唯一方法,例如。 IEnumerable是创建一个局部变量并传入这个变量。 例如 @{ IEnumerable<Demo.Models.Friend> friends = Model.Friends; Html.RenderPartial("_FriendsList", friends); }

Html.RenderPartial("_FriendsList", (IEnumerable<Demo.Models.Friends>)(Model.Friends));无效!