Я показываю пользователю экран, где он может проверить, какие поля он хочет получить из базы данных. На основе отмеченных флажков я хочу написать запрос с использованием LINQ или лямбда-выражения и извлечь данные в ASP. NET MVC. Как это сделать, поскольку выбор столбцов является динамическим c? Например, если проверены только столбцы «Имя» и «Адрес электронной почты», то получите данные этих 2 столбцов только из базы данных.
Контроллер
public ActionResult Report()
{
return View();
}
[HttpPost]
public ActionResult Report(Employee emp)
{
List<Employee> employees = new List<Employee>();
employees = db.Employees.Select(x => new Employee()
{
// select Only those columns which are checked by the user
}).ToList();
return View();
}
Просмотр
@model IEnumerable<DynamicCheck.Models.Employee>
@{
ViewBag.Title = "EmployeeReport";
}
<h2>EmployeeReport</h2>
<form action="~/Employees/Report" method="post">
<div>
<div class="col-lg-3">
<input type="checkbox" name="Name" />
<label>Employee Name</label>
</div>
<div class="col-lg-3">
<input type="checkbox" name="Email" />
<label>Employee Email</label>
</div>
<div class="col-lg-3">
<input type="checkbox" name="Address" />
<label>Employee Address</label>
</div>
<div class="col-lg-3">
<input type="checkbox" name="Phone" />
<label>Employee Name</label>
</div>
<input type="submit" value="Submit"/>
</div>
</form>