ASP.NET MVC如何绑定自定义模型进行查看

时间:2009-05-15 13:49:02

标签: asp.net-mvc gridview model

我想绑定一个数组数据来在ASP.NET MVC中查看,我该怎么做?

抱歉不清楚我的问题。 现在,我创建了一个自定义对象(不是数组),我试图将它传递给View,但错误显示

“传入字典的模型项是'ContactView'类型,但是这个字典需要一个'System.Collections.Generic.IEnumerable'类型的模型项

3 个答案:

答案 0 :(得分:6)

您可以使用ViewData [],但最好的方法是实际创建一个视图类并返回它。

因此,假设您要发送数据的视图称为“联系人”。创建一个新的View类并返回它。所以不要这样:

public ActionResult Contacts(){
    ViewData["contacts"] = arrayOfContacts[];
    ...
    return View();
}

您可以通过以下方式获得强类型视图:

public class ContactsView(){
     Object[] ContactsList {get;set;}
}

public ActionResult Contacts(){
    ...
    return View(new ContactsView(){
        ContactsList = arrayOfContacts[];
    });
}

然后在实际视图中,您可以通过接受ContactsView类型的对象来强类型化。那样在实际的View中,让它继承如下:

... Inherits="System.Web.Mvc.ViewPage<ContactsView>" ...

允许您将数组称为...

Model.ContactsList

与此相反:

 object[] arrayOfItems = (Object[])ViewData["theContactsList"];

在这种情况下,您可能想要检查它是否为空等等。这样做的好处是,如果您重构它会更容易。更不用说强类型对象的易用性和类型安全性。

答案 1 :(得分:0)

将它放在ViewData中,并使用for..each循环它?

答案 2 :(得分:0)

请看这个链接:http://nerddinnerbook.s3.amazonaws.com/Part6.htm

基本上你可以将数组加载到viewdata对象中,并根据需要使用它。

相关问题