【问题标题】:Using Html.RenderPartial() in ascx files在 ascx 文件中使用 Html.RenderPartial()
【发布时间】:2011-04-18 20:43:12
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

    以防其他人犯了同样的错误:

    @Model MyViewModel
    

    这会将您的模型视为动态的

    @model MyViewModel
    

    这是一个正确的强类型视图。注意没有大写!

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

    【讨论】:

    • 真是有点天才。这真的帮我节省了时间。
    【解决方案3】:

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

    Html.RenderPartial("_FriendsList", (IEnumerable&lt;Demo.Models.Friends&gt;)(Model.Friends)); 没用!

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多