2010-06-20 2 views
0

와 나는 뷰 모델을 사용하는 메인 페이지 내가 만든 있습니다.ASP.NET MVC는 IEnumerable 문제 RenderPartial

<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> 

.NET 4를 사용하고 있었지만 제대로 작동했지만 3.5 버전 이후 Generics를 변경 한 것으로 알고 있습니다. 그러나 내 웹 서버 회사는 3.5를 사용하여 배포해야한다는 의미로 서버를 업그레이드하지 않았습니다. Partial을 Main 페이지와 동일한 객체로 캐스팅 한 다음 필요한 ViewData를 더 넘겨야하는 경우 Partial을 사용할 수 있습니다. Partials를 사용하는 이유는 .NET Framework에서 AJAX를 이용하는 것입니다. 예 : 범주는 AJAX 링크입니다. 메서드가 업데이트 된 Partial을 범주 이미지와 함께 반환하는 메서드로 이동합니다. 이미지를 Parial에 전달하기 만하면됩니다.

이 문제를 해결하는 데 도움이 되시면 도움이 될 것입니다.

감사합니다,

답변

4

난 당신이 컴파일러 일 때문에 당신은 제네릭이 아닌 IEnumerable을을 사용하여 ASPX/ASCX 파일에 대한 System.Collections.Generic 네임 스페이스를 가져되지 않는다는 생각한다.

web.config 파일로 이동하여 필요한 네임 스페이스를 모두 가져 오는지 확인하십시오.

는 다른 방법으로, 당신의 "상속"속성에 전체 유형 이름을 사용

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

아 너무 늦었다. +1 –

+0

도움 주셔서 감사합니다. 이것은 문제를 해결했으며, .NET에서 Java를 주로 사용하기 전에는 여전히 매우 익숙합니다. –