我已经决定尝试使用ASP.NET MVC,但我要替换的第一部分是Model。我正在使用LLBL Pro作为模型。
我有一个名为“Groups”的表,它是一个简单的查找表。我想获取表的结果并在MVC中填充列表。一些应该非常简单的东西...或者我认为......我已经尝试了各种各样的事情,因为我遇到了错误:
传递到字典中的模型项的类型为'System.Collections.Generic.List 1[glossary.EntityClasses.GroupEntity]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1 [glossary.CollectionClasses.GroupCollection]'。
private GroupCollection gc = new GroupCollection();
public ActionResult Index()
{
gc.GetMulti(null);
return View( gc.?????? );
}
public ActionResult Index()
{
gc.GetMulti(null);
return View( gc.?????? );
}
这就是我要做的所有事情,我尝试了很多变化,但我的目标只是获取数据并显示它。
答案 0 :(得分:2)
不确定这是否可行,但您可以尝试将EntityCollection包装到ViewModel类中并将其传递给View,如下所示:
public class GroupsViewModel()
{
public GroupCollection Groups { get; set; }
// other items in your view model could go here
}
然后将您的控制器方法转换为
public ActionResult Index()
{
GroupCollection gc = new GroupCollection();
gc.GetMulti(null);
GroupsViewModel vm = new GroupsViewModel();
vm.Groups = gc;
return View(vm);
}
我喜欢这种方法,因为每个ViewModel本身都是一个对象。
答案 1 :(得分:0)
你可以使用AsEnumerable扩展你的?????是或者将ViewUserControl的类型(在标记中)更改为System.Collections.Generic.List类型。基本上你需要纠正的是View类型和传入模型之间的不匹配。
答案 2 :(得分:0)
我不确定你的确切错误,但我冒昧地猜测其中有两件事正在发生:
您正在对LLBLGen对象进行某种无效/非法通话。如果是这种情况,请确保正确设置/调用正确的方法/属性等。
您传递给视频的模型太过毛茸茸而无法处理。在这种情况下,通常情况下,您应仅使用您想要显示的数据创建一个简单的“视图模型”类,然后首先从LLBLGen对象填充它,然后将其传递给视图,这将是能够轻松处理您的视图模型类。
以下是一些参考资料:
答案 3 :(得分:0)
假设Yuriy说的话,看起来你的观点被强烈地打印成了你的集合的“集合”,并且你试图通过你的集合。确保您的“集合”类型(IEnumerable,IList等)与您在控制器中发送的集合类型以及集合中实际对象的类型相匹配。
查看: System.Collections.Generic.List1 [glossary.EntityClasses.GroupEntity]
控制器: System.Collections.Generic.List1 [glossary.EntityClasses.GroupEntity]
只是一个想法