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>();
在我的 Controller 中,我有 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”的适用方法,但似乎有一个名为“Image”的扩展方法。不能动态调度扩展方法。考虑在没有扩展方法语法的情况下转换动态参数或调用扩展方法。
任何帮助将不胜感激, 提前谢谢你。
最佳答案
警告:我没有做过任何 MVC 的东西,所以这是猜测。
我的猜测是 ActivePlans 在某种形式上是动态的...所以您基本上需要使 item
成为强类型的。它可能就像这样简单:
@foreach (RegisterSubscription item in ViewBag.ActivePlans)
... 这基本上会将每个项目转换到 RegisterSubscription
,因为它从 ViewBag
中获取它。在那之后,我看不到你有任何动态,所以扩展方法应该没问题。我认为。或许。当风合适的时候。
关于C# MVC3 ViewBag,如何在 foreach 语句中的 View 中使用列表属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4656834/