Inumerable である @model を持つ MVC3 アプリケーションに Index ビューがあります。このモデルには、ユーザーがアカウントをフィルタリングできるように、ビュー フィルターのドロップダウン リストにアカウントを入力するために使用する accountID があります。
これを達成するための最良の方法はどれですか?
前もって感謝します。
これはビューです:
@model IEnumerable<MoneyAdmin.Model.ContaAReceber>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@Html.Partial("_SubmenuAdmin")
<div class="tituloCadastro">
Lista de Contas a Receber
</div>
<div class="buttonContainer novo">
@Html.ActionLink("Nova Conta", "Create")
</div>
<div class="filtros">
@using (Html.BeginForm()) {
<div class="filterField">
<label>Data Inicial:</label>
@Html.TextBox("dataInicial", @DateTime.Now.ToShortDateString())
</div>
<div class="filterField">
<label>Data Final:</label>
@Html.TextBox("dataFinal", @DateTime.Now.ToShortDateString())
</div>
<div class="filterField">
<label>Tipo de Conta:</label>
@Html.DropDownList("contaID")
</div>
<input type="submit" value="Atualizar" />
}
</div>
そしてコントローラーメソッド:
public ViewResult Index(string dataInicial, string dataFinal, string contaID)
{
var crs = from cr in db.contasareceber.Include("contas")
select cr;
if (!string.IsNullOrEmpty(dataInicial) && !string.IsNullOrEmpty(dataFinal))
{
DateTime di = DateTime.Parse(dataInicial);
DateTime df = DateTime.Parse(dataFinal);
crs = crs.Where(cr => cr.dataPagamento >= di && cr.dataPagamento <= df);
}
return View(crs.ToList());
}