如何在ASP.NET MVC中将模型转换为ViewModel

时间:2019-03-07 09:05:50

标签: asp.net-mvc asp.net-mvc-5

这是我的代码:

public List<DiscountVM> GetAllDiscounts(long CompanyID)
    {

        return _context.Discounts.Where(x => x.IsActive == true && x.CompanyID == CompanyID).Select(s => new DiscountVM()
        {
            DiscountID = s.DiscountID,
            LocationID = s.LocationID,
            CompanyID = s.CompanyID,
            DiscountName = s.DiscountName,
            DiscountValue = s.DiscountValue,
            DiscountType = s.DiscountType,
            ServiceSale = s.ServiceSale,
            ProductSale = s.ProductSale,
            VoucherSale = s.VoucherSale,
            IsActive = s.IsActive,
            AddDate = s.AddDate,
            AddedByID = s.AddedByID,
            UpdateDate = s.UpdateDate,
            UpdatedByID = s.UpdatedByID,
        }).ToList();
    }

我想将模型转换为视图模型,因为如果我不进行转换,那么我必须填写所有值。

如果我填写所有值,代码工作正常。我试图找到一种方法,可以轻松地将模型转换为视图模型,然后就无需填充所有值。

2 个答案:

答案 0 :(得分:0)

您是否考虑过AutoMapper来帮助您?

答案 1 :(得分:0)

这可以通过一些不同的方法来完成,但最简单的方法是通过将数据库模型添加为视图模型的属性来稍微改变视图模型

 public class DiscountVM
     {
        public Discounts DiscountsList{ get; set; }
        // Other property
     }

然后返回

public List<DiscountVM> GetAllDiscounts(long CompanyID)
{
    return _context.Discounts.Where(x => x.IsActive == true && x.CompanyID ==CompanyID).Select(s => new DiscountVM()
    {
        DiscountsList=s
    }).ToList();

}