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

tak*_*shi 23 asp.net-mvc renderpartial partial-views

我正在尝试在acsx文件中使用Html.RenderPartial,我收到一个错误:

编译器错误消息:CS1973:'System.Web.Mvc.HtmlHelper'没有名为'RenderPartial'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法

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

但是我已经导入了必要的命名空间,所以它不会出错

<% Html.Label("fdf"); %>
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在ascx文件中使用Html.RenderPartial吗?

GvS*_*GvS 40

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

<% Html.RenderPartial("ProjectName", (int)(Model.Id)); %>
Run Code Online (Sandbox Code Playgroud)

或者任何其他数据类型Id.

  • @Rob,如果您转到Razor,请考虑使用:http://stackoverflow.com/questions/4047543/render-partial-view-with-dynamic-model-in-razor-view-engine-and-asp-净-MVC-3/5357049#5357049 (3认同)

Stu*_*rtQ 8

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

@Model MyViewModel
Run Code Online (Sandbox Code Playgroud)

这会将您的模型视为动态

@model MyViewModel
Run Code Online (Sandbox Code Playgroud)

这是一个正确的强类型视图.注意资本化不足!

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