プロジェクトには SupplierRow.cs という 2 つのモデルがあります。
using System;
namespace Argussite.SupplierServices.ViewModels
{
public class SupplierRow
{
public Guid Id { get; set; }
public string FullName { get; set; }
public bool Subscribed { get; set; }
public bool Active { get; set; }
public int Visits { get; set; }
}
}
および UserRow.cs
using System;
namespace Argussite.SupplierServices.ViewModels
{
public class UserRow
{
public Guid Id { get; set; }
public string FullName { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Status { get; set; }
public int Role { get; set; }
}
}
次に、1つのコントローラーで最初のモデルを使用します
public ActionResult Grid(bool? active)
{
var page = Context.Suppliers.AsNoTracking()
.WhereIf(active != null, e => e.Active == active)
.Select(e => new SupplierRow
{
Id = e.Id,
FullName = e.FullName,
Active = e.Active,
Visits = e.Visits
})
.ToList();
return PartialView("_Grid", page);
}
他のコントローラーで2番目のモデルを使用します
public class AdminSuppliersAccountsController : BaseController
{
public ActionResult Index(Guid id)
{
var supplierOfUser = Context.Suppliers.AsNoTracking()
//.Include(e => e.Supplier)
.FirstOrDefault(e => e.Id == id);
ViewData.Add("id", id);
ViewData.Add("SupplierFullName", supplierOfUser.FullName);
return View();
}
public ActionResult Grid(int? status, Pager pager, Guid? supplierId)
{
var page = Context.Users.AsNoTracking()
.Where(e => e.SupplierId == supplierId)
.WhereIf(status != null, e => (e.Status == status))
.Select(e => new UserRow
{
Id = e.Id,
FullName = e.FullName,
Email = e.Email,
Name = e.Name,
Status = e.Status,
Role = e.Role
})
.GetPage(pager, Sorter.Asc<UserRow, string>(e => e.FullName));
return PartialView("_Grid", page);
}
しかし、2番目のモデルのすべてのユーザーのステータスが非アクティブであるかどうかをチェックする最初のコントローラーを追加し、それをビューで使用する必要があります。
どうやってやるの?
最初のモデルに新しいプロパティを追加する必要があると思いpublic bool AllUnactive { get; set; }
ますが、その後どうすればよいですか?