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

时间:2011-01-11 10:55:00

标签: c# .net 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>();

在我的控制器中,我有 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>
}

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

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

1 个答案:

答案 0 :(得分:12)

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

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

@foreach (RegisterSubscription item in ViewBag.ActivePlans)

...当它从RegisterSubscription中取出时,基本上会将每个项目投放到ViewBag。在那之后,我看不出你有什么动态,所以扩展方法应该没问题。我认为。也许。当风正好时。