所以我想显示来自同一个控制器的多个查询的结果。
我有一个像这样的控制器方法:
public ActionResult Index() {
string tmp_username = Membership.GetUser().ToString();
ViewData["lemons"] = lemondb.lemon.Where(p => p.user == tmp_username).ToList();
ViewData["sugar" ] = lemondb.sugar.Where( p => p.user == tmp_username ).ToList();
return View();
}
一个类似于此的观点:
@foreach (var action in (List)ViewData["lemons"]) {
...
@Html.DisplayFor( action.amount )
...
@Html.DisplayFor( action.acidity )
@foreach (var action in (List)ViewData["sugar"]) {
...
@Html.DisplayFor( action.amount )
...
@Html.DisplayFor( action.sweetness)
但是我在“foreach”行上出现了一个错误,例如:
CS0305:使用通用类型 'System.Collections.Generic.List' 需要1个类型参数
我错过了什么论点?
答案 0 :(得分:2)
我认为这是一个简单的C#问题。您应该将ViewData中的对象强制转换为List<T>
,您必须使用列表的元素类型替换T
。检查lemondb.lemon属性的类型以找出您的元素类型。
如果类型为LemonTrader.Models.Message
,请尝试:
@foreach (var action in (List<LemonTrader.Models.Message>)ViewData["lemons"])