C#MVC3 ViewBag,如​​何在foreach语句中使用list属性?

zyn*_*aps 4 .net c# asp.net-mvc asp.net-mvc-3

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>();
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我有ViewBag.ActivePlans = activePlans; 并且ViewBag填充了正确的数据.现在在我看来,我有:

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

但我收到以下错误:'System.Web.Mvc.HtmlHelper'没有名为'Image'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法.

任何帮助将不胜感激,谢谢你提前.

Jon*_*eet 12

警告:我没有做任何MVC的事情,所以这是猜测.

我的猜测是ActivePlans在某种形式下是动态的...所以你基本上需要item做强类型.它可能就像这样简单:

@foreach (RegisterSubscription item in ViewBag.ActivePlans)
Run Code Online (Sandbox Code Playgroud)

...基本上会把每个项目都投入到RegisterSubscription它中ViewBag.在那之后,我看不出你有什么动态,所以扩展方法应该没问题.我认为.也许.当风是对的.