Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.Net MVC通过列表<&燃气轮机;使用IEnumerable查看<&燃气轮机;_Asp.net Mvc - Fatal编程技术网

Asp.net mvc ASP.Net MVC通过列表<&燃气轮机;使用IEnumerable查看<&燃气轮机;

Asp.net mvc ASP.Net MVC通过列表<&燃气轮机;使用IEnumerable查看<&燃气轮机;,asp.net-mvc,Asp.net Mvc,我有一个简单的联系人列表应用程序。我使用的视图模型与我的域模型完全分离。View has IEnumerable下面是呈现列表的my Index()操作方法: private AddressBookContext db = new AddressBookContext(); public ActionResult Index() { List<ContactListVM> viewListVM = new List<ContactListVM>(); f

我有一个简单的联系人列表应用程序。我使用的视图模型与我的域模型完全分离。View has IEnumerable下面是呈现列表的my Index()操作方法:

private AddressBookContext db = new AddressBookContext();

public ActionResult Index()
{
    List<ContactListVM> viewListVM = new List<ContactListVM>();
    foreach (Contact c in db.Contacts.ToList())
    {
        viewListVM.Add(new ContactListVM
        {
            ContactID = c.ContactID,
            FirstName = c.FirstName,
            LastName  = c.LastName,
            Address1  = c.Address1,
            Address2  = c.Address2,
            City      = c.City,
            State     = c.State,
            ZipCode   = c.ZipCode,
            Phone     = c.Phone,
            Email     = c.Email,
            BirthDate = c.BirthDate         
        });
    }
    return View(viewListVM);
}
private AddressBookContext db=new AddressBookContext();
公共行动结果索引()
{
List viewListVM=新列表();
foreach(db.Contacts.ToList()中的触点c)
{
添加(新联系人列表虚拟机)
{
ContactID=c.ContactID,
FirstName=c.FirstName,
LastName=c.LastName,
地址1=c.Address1,
地址2=c.Address2,
城市,
状态=c.状态,
ZipCode=c.ZipCode,
电话,
电子邮件,
生日
});
}
返回视图(viewListVM);
}
有没有一种方法可以用更少的代码来实现这一点?

是一个Nuget包,可以帮助您清理代码。特别是,它将不再需要手动将域属性指定给viewmodel属性

这涉及到一些设置,但最终结果如下所示:

public ActionResult Index()
{
    List<ContactListVM> viewListVM = new List<ContactListVM>();
    foreach (Contact c in db.Contacts.ToList())
    {
        viewListVM.Add(Mapper.Map<Contact, ContactListVM>(c));
    }
    return View(viewListVM);
}
public ActionResult Index()
{
List viewListVM=新列表();
foreach(db.Contacts.ToList()中的触点c)
{
viewListVM.Add(Mapper.Map(c));
}
返回视图(viewListVM);
}
绝对使用

安装后,从创建新映射开始。你只需要做一次,我个人在
应用程序\u Start
中做

Mapper.CreateMap<Contact, ContactListVM>();
Mapper.CreateMap();
然后,将查询结果映射到所需的输出即可

public ActionResult Index()
{
    var contacts = db.Contacts.ToList();

    return View(Mapper.Map<List<ContactListVM>>(contacts));
}
public ActionResult Index()
{
var contacts=db.contacts.ToList();
返回视图(Mapper.Map(contacts));
}
你完成了,很简单