如何在 asp.net mvc 中将模型转换为 ViewModel

How to Convert Model to ViewModel in asp.net mvc

这是我的代码:

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();
    }

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

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

您是否研究过 AutoMapper 来帮助您?

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

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

和return这样

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

}