Asp.net mvc ASP.NET MVC IEnumerable问题与RenderPartial

Asp.net mvc ASP.NET MVC IEnumerable问题与RenderPartial,asp.net-mvc,Asp.net Mvc,我有一个使用我创建的ViewModel的主页面: public class HomeViewModel { public List<Category> Categories { get; set; } public List<Image> Images { get; set; } public HomeViewModel(List<Image> images, List<Category> categories)

我有一个使用我创建的ViewModel的主页面:

public class HomeViewModel
{
    public List<Category> Categories { get; set; }
    public List<Image> Images { get; set; }

    public HomeViewModel(List<Image> images, List<Category> categories)
    {
        Images = images;
        Categories = categories;
    }
}
公共类HomeViewModel
{
公共列表类别{get;set;}
公共列表图像{get;set;}
公共HomeViewModel(列表图像、列表类别)
{
图像=图像;
类别=类别;
}
}
在我的主页上,我输出类别,然后将图像传递到局部视图

<div id="gallery">
    <% Html.RenderPartial("gallery", Model.Images); %>
</div>

运行我的工作时,出现以下错误:错误CS0308:非泛型类型“System.Collections.IEnumerable”不能与类型参数一起使用

这是我的部分观点:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Gallery.Models.Image>>" %>
    <%@ Import Namespace="Gallery.Helpers" %>

    <ul>
        <% foreach (var item in Model)
        { %>
            <li>             
                <%= Html.ImageLink(item.imageID.ToString(), Url.Content("~/Uploads/" + item.imageLocation).ToString(), item.imageDescription, Url.Content("~/Uploads/" + item.imageThumb).ToString(), item.imageDescription, null)%>
            </li>
        <% } %>
    </ul>

我使用的是.NET4,它工作得很好,但我知道他们从3.5版开始就修改了泛型,这使它成为可能。然而,我的web服务器公司没有升级他们的服务器,这意味着我必须使用3.5进行部署。如果我将分部作为与主页相同的对象进行强制转换,那么我就可以使用分部,但是我传递的ViewData比我需要的要多。我使用Partials的原因是为了在.NET框架中利用AJAX。例如,类别是AJAX链接转到一个方法,该方法返回带有类别图像的更新部分,我应该只需要将图像传递到Parial

如果您能帮助解决此问题,我们将不胜感激

谢谢


Jon

我怀疑您没有为您的ASPX/ASCX文件导入
System.Collections.Generic
名称空间,因此编译器认为您使用的是非Generic IEnumerable

转到web.config文件,确保导入了所有必要的名称空间

或者,在“继承”属性中使用完整的类型名称:

Inherits="System.Web.Mvc.ViewUserControl<System.Collections.Generic.IEnumerable<Gallery.Models.Image>>"
Inherits=“System.Web.Mvc.ViewUserControl”

我怀疑您没有为您的ASPX/ASCX文件导入
System.Collections.Generic
名称空间,因此编译器认为您使用的是非Generic IEnumerable

转到web.config文件,确保导入了所有必要的名称空间

或者,在“继承”属性中使用完整的类型名称:

Inherits="System.Web.Mvc.ViewUserControl<System.Collections.Generic.IEnumerable<Gallery.Models.Image>>"
Inherits=“System.Web.Mvc.ViewUserControl”

谢谢您的帮助。这解决了这个问题,我对以前主要使用Java的.NET还是很陌生:-)谢谢你的帮助。这就解决了这个问题,我对以前主要使用Java的.NET还是相当陌生的:-)