在MVC中使用LLBL作为模型

时间:2009-10-14 19:36:08

标签: asp.net-mvc llblgenpro

我已经决定尝试使用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.?????? ); }

这就是我要做的所有事情,我尝试了很多变化,但我的目标只是获取数据并显示它。

4 个答案:

答案 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]

只是一个想法