내 모델은 다음과 유사합니다. 저장 프로 시저에 의해 어느 시점에서 항목으로 채워집니다.ASP.NET MVC DropDownListFor
public class myModel
{
public List<SelectListItem> myList { get; set; }
public List<myModel> modelList { get; set; }
}
여기 내 컨트롤러입니다.
[HttpGet]
public ActionResult getMyListItems()
{
var viewModel = new myModel();
viewModel.myList = viewModel.getMyList();
viewModel.modelList = viewModel.getMyModelList();
return View(viewModel);
}
여기까지입니다. 사용자가 modelList의 내용을 필터링 할 수 있도록 드롭 다운 목록을 작성합니다. SQL 쿼리에서 WHERE 절과 같은 종류입니다. 사용자가 항목을 선택하고 제출 버튼을 클릭하면 필터가 적용됩니까? 또는 버튼 클릭 이벤트없이 드롭 다운에서 항목을 실제로 선택한 후에 발생합니까?
@model SWAM2.Models.EmployeeOfcSpecKnow
@using CommonCode.HtmlHelpers;
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="editor-label">
Filter by Column1
</div>
<div class="editor-field">
@Html.DropDownListFor(model => Model.Column1, Model.myList, new { style = "width:400px" })
@Html.ValidationMessageFor(model => model.Column1)
</div>
<div class="toppad10">
<input type="submit" value="Apply Filter" />
</div>
<table class="grayTable rowStriping">
<thead>
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
</tr>
</thead>
<tbody>
@foreach (var item in @Model.modelList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Column1)
</td>
<td>
@Html.DisplayFor(modelItem => item.Column2)
</td>
<td>
@Html.DisplayFor(modelItem => item.Column3)
</td>
</tr>
}
</tbody>
</table>
}