2011-01-11 3 views
4
public class RegisterSubscription 
{ 
     public string ID { get; set; } 
     public string Description { get; set; } 
     public int SubscrSelected { get; set; } 
     public string Image { get; set; } 
     public string InfoUrl { get; set; } 
} 

private List<RegisterSubscription> activePlans = new List<RegisterSubscription>(); 

내 컨트롤러에는 ViewBag.ActivePlans = activePlans; 및 ViewBag가 올바른 데이터로 채 웁니다.C# MVC3 ViewBag, foreach 문 내에서보기에서 lists 속성을 사용하는 방법?

@foreach (var item in ViewBag.ActivePlans) 
{ 
    <li class="popupmenu" id="[email protected](item.ID)" > 
    <div> 
    @Html.Image(item.Image, new { style="border-style:none; text-align:left; vertical-align:middle; width:64px; height:64px" }) 
    </div> 
    </li> 
} 

그러나 나는 다음과 같은 오류가 발생합니다 : : 이제 내보기에 내가 가진 'System.Web.Mvc.HtmlHelper'는 '이미지'라는 이름의 적용 방법이 없습니다하지만 그 이름으로 확장 방법을 가지고 나타납니다. 확장 메서드는 동적으로 디스패치 할 수 없습니다. 동적 인수를 형변환하거나 확장 메서드 구문없이 확장 메서드를 호출하는 것이 좋습니다.

어떤 도움이 크게 감사합니다

, 사전에 감사합니다.

답변

13

경고 : 난 어떤 MVC 물건을하지 않은, 그래서 이것은 추측이다.

내 생각 엔 ActivePlans 어떤 형태의 동적이다 ... 그래서 당신은 기본적으로 강력한 형식의 item를 확인해야합니다. 그것은 이만큼이나 간단 할 수는 ViewBag에서 그것을 가지고로서 기본적으로 RegisterSubscription에 각 항목을 던졌다

@foreach (RegisterSubscription item in ViewBag.ActivePlans) 

.... 그 후에는 동적 인 것을 볼 수 없으므로 확장 메서드는 괜찮습니다. 나는 생각한다. 아마도. 바람이 맞을 때.

+0

Worked! 고맙습니다. – zynaps

+0

나를 위해 일했습니다! 감사! – Rob

+0

@ 존 스키트 - 만약 익명의 타입을 사용하고 있다면? 전의. ViewBag.ActivePlans = new {Prop = "Value"}'? 객체를 형 변환 할 수없는 상태에서 뷰에서'ActivePlans.Prop'에 어떻게 접근 할 수 있습니까? 가능합니까? –

관련 문제