3 모델의 데이터를 결합한 뷰 모델이 있습니다.보기 모델 정렬?
public async Task<IActionResult> Index(int? id)
{
ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewData["DateSortParm"] = sortOrder == "Date" ? "date_desc" : "Date";
var viewModel = new VendorVM();
viewModel.Vendors = await _context.Vendors
.Include(i => i.Promos)
.Include(i => i.Contacts)
.Include(i => i.Distributors)
.AsNoTracking()
.ToListAsync();
if (id != null)
{
ViewData["VendorID"] = id.Value;
Vendor vendorVM = viewModel.Vendors.Where(
i => i.VendorID == id.Value).Single();
viewModel.Promos = vendorVM.Promos.ToList();
viewModel.Contacts = vendorVM.Contacts.ToList();
viewModel.Distributors = vendorVM.Distributors.ToList();
switch(sortOrder)
{
case "name_desc":
viewModel.Vendors = viewModel.Vendors.OrderByDescending(i => i.VendorName);
break;
case "Date":
viewModel.Vendors = viewModel.Vendors.OrderBy(i => i.Distributors.OrderBy(v => v.LastUpdateDate));
break;
case "date_desc":
viewModel.Vendors = viewModel.Vendors.OrderByDescending(i => i.Distributors.OrderByDescending(v => v.LastUpdateDate)));
break;
default:
viewModel.Vendors = viewModel.Vendors.OrderBy(i => i.VendorName);
break;
}
return View(viewModel);
}
어떻게이보기 모델에 정렬 기능을 추가 할 수 있습니다 : 여기
public class VendorVM
{
public IEnumerable<Vendor> Vendors { get; set; }
public IEnumerable<Promo> Promos { get; set; }
public IEnumerable<Contact> Contacts { get; set; }
public IEnumerable<Distributor> Distributors { get; set; }
}
컨트롤러입니까? VendorName별로 정렬하고 싶습니다. & LastUpdateDate. 나는이 튜토리얼을 여기에 따르고있다 :
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/sort-filter-page. 벤더 정보 만 정렬 할 수 있기 때문에 내 뷰 모델에서는 작동하지 않습니다. 나는 프로모션을 정렬하고 싶습니다. 연락은 &입니다.
무엇을 정렬 하시겠습니까? – WellerEE
일반적으로'.OrderBy()'를 사용하여 콜렉션을 정렬 할 수 있습니다. "보기 모델에서 작동하지 않습니다"라는 의미는 무엇입니까? 당신은 무엇을 시도했고 어떻게 실패 했습니까? – David
@WellerEE 이름 및 날짜 –