我正在尝试在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?
答案 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));
无效!