我有一個工作的映射的相當簡單的例子,但我不相信,我做了正確的事情集合視圖模型。有人能幫助我理解將收藏集發送到View Model的最佳做法是什麼?MVC - 發送使用AutoMapper
這是AutoMapper.CreateMap:
Mapper.CreateMap<Product, _BrowseViewModel>();
這是控制器:
var dsProduct = from p in Entity.Product
select p;
if (dsProduct.Any())
{
IEnumerable<_BrowseViewModel> browseViewModel = Mapper.Map<IEnumerable<Product>, IEnumerable<_BrowseViewModel>>(dsProduct.ToList());
return View(browseViewModel);
}
的_BrowseViewModel類只包含從產品表中的幾個字段將顯示:
public class _BrowseViewModel
{
public long ProductID { get; set; }
public string ProductName { get; set; }
... etc
我擔心的是,現在在視圖模型是一個集合;這看起來不正確。
@model IEnumerable<AppStoreModel._BrowseViewModel>
此特定場景的正確架構是什麼?
將是更好的包裹你收集到另一個類 – 2014-10-31 07:30:58
爲什麼你認爲它的錯誤的集合發送到視圖,如果您有多個產品,那麼爲什麼不呢? – 2014-10-31 08:26:32
嗨大衛, 我可以稍後添加項目的ViewModel不在「產品」集合;這就是爲什麼我認爲整個ViewModel不應該是一個集合。 我已經使產品成爲_BrowseViewModel的子類;但是我有一個AutoMapper錯誤: 映射類型: IEnumerable'1 - > _BrowseViewModel System.Collections.Generic.IEnumerable'1 [[ProjectModel.Product,ProjectModel,版本= 1.0.0.0,文化=中性公鑰=空]] - > ProjectModel._BrowseViewModel – g4mbit 2014-10-31 09:05:26