Mein Modell sieht in etwa so aus. Es wird zu einem bestimmten Zeitpunkt von einer gespeicherten Prozedur mit Elementen gefüllt.ASP.NET MVC DropDownListFor
public class myModel
{
public List<SelectListItem> myList { get; set; }
public List<myModel> modelList { get; set; }
}
Hier ist mein Controller.
[HttpGet]
public ActionResult getMyListItems()
{
var viewModel = new myModel();
viewModel.myList = viewModel.getMyList();
viewModel.modelList = viewModel.getMyModelList();
return View(viewModel);
}
Hier ist meine Ansicht so weit. Ich erstelle eine Dropdown-Liste, damit der Benutzer den Inhalt von ModelList filtern kann. Wie eine WHERE-Klausel in einer SQL-Abfrage. Sobald der Benutzer das Element auswählt und auf die Schaltfläche Senden klickt, wendet es den Filter an? Oder würde dies passieren, nachdem ein Element tatsächlich im Dropdown-Menü ausgewählt wurde, ohne dass ein Button-Klick-Ereignis erforderlich ist?
@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>
}