Asp.net mvc ASP.Net MVC通过列表<&燃气轮机;使用IEnumerable查看<&燃气轮机;
我有一个简单的联系人列表应用程序。我使用的视图模型与我的域模型完全分离。View has IEnumerable下面是呈现列表的my Index()操作方法: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
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));
}
你完成了,很简单