Фильрация данных "C#: Web, ASP.NET"
Создал таблицу для вывода данных из БД Mysql. С выводом проблем нет, Решил добавить фильтрацию .
создал модель для вывода и для фильтрации
[Table("o")]
public class Othet
{
[Key]
public int Id { get; set; }
public DateTime time { get; set; }
public int tabn { get; set; }
public int nomer_oper { get; set; }
public int? id_kass { get; set; }
public Nullable<decimal> prixod { get; set; }
public Nullable<decimal> rasxod { get; set; }
public int id_podr { get; set; }
public string comment{ get; set; }
public string emp { get; set; }
public DateTime timew { get; set; }
public Kass Kass { get; set; }
}
[Table("k")]
public class Kass
{
public int Id { get; set; }
public int kass_id { get; set; }
public string kass_name { get; set; }
public ICollection<Othet> Othets { get; set; }
public Kass()
{
Othets = new List<Othet>();
}
public class KassListViewModel
{
public IEnumerable<Othet> Otchets { get; set; }
public SelectList Kasses { get; set; }
}
}
Создал представление
@model CRM.Models.KassListViewModel
@{
ViewBag.Title = "Index";
}
<br />
<a class="btn" href="/Home/CreateTagret">Добавить</a>
<form method="get">
<div class="form-inline">
<label class="control-label">Команда: </label>
@Html.DropDownList("kass_name", Model.Kasses as SelectList,
htmlAttributes: new { @class = "form-control" })
<input type="submit" value="Фильтр" class="btn btn-default" />
</div>
</form>
<br />
<br />
<br />
<table class="table" border="1">
<tr>
<th>Время</th>
<th>Табель</th>
<th>Номер операции</th>
<th>Касса</th>
<th>Приход</th>
<th>Расход</th>
<th>Коментарий</th>
<th>Время2</th>
</tr>
@foreach (var item in Model.Otchets)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.time)</td>
<td>@Html.DisplayFor(modelItem => item.tabn)</td>
<td>@Html.DisplayFor(modelItem => item.nomer_oper)</td>
<td>@Html.DisplayFor(modelItem => item.id_kass)</td>
<td>@Html.DisplayFor(modelItem => item.prixod)</td>
<td>@Html.DisplayFor(modelItem => item.rasxod)</td>
<td>@Html.DisplayFor(modelItem => item.comment)</td>
<td>@Html.DisplayFor(modelItem => item.timew)</td>
<td>@Html.DisplayFor(modelItem => item.Kass.kass_id)</td>
</tr>
}
</table>
Создал контроллер
using CRM.Models;
using MySql.Data.MySqlClient;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web.Mvc;
using System.Data.Entity;
namespace CRM.Controllers
{
public class OthetController : Controller
{
// GET: Othet
private OtchetDB db = new OtchetDB();
public ActionResult Index(int? kass)
{
IQueryable<Othet> othetas = db.Othets.Include(k => k.Kass);
if (kass != null && kass != 0)
{
othetas = othetas.Where(k => k.id_kass == kass);
}
List<Kass> kasses = db.Kasses.ToList();
// устанавливаем начальный элемент, который позволит выбрать всех
kasses.Insert(0, new Kass { Id = 0 });
KassListViewModel plvm = new KassListViewModel
{
Otchets = othetas.ToList(),
Kasses = new SelectList(kasses, "Id", "kass_name"),
};
return View(plvm);
//List<Othet> result = db.Othets.ToList();
// return View(result);
}

