I'm trying to filter a table using a dropdown-list but I'm not able to keep SelectListItem value selected after submitting the form in ASP.NET Core.
The filter seems to work but whenever the page reloads the selected item is always the same
Get Controller
public ActionResult Index(int myDropDown)
{
var myItems= new List<Items>();
myItems = _myRepository.GetAllItems();
var filteredItems = myItems.Where(x => x.Color.DemoId == myDropDown);
if (myDropDown != 0 )
{
return View(filteredItems);
}
return View(myItems);
}
Index.chtml
<form asp-controller="MyController">
<div class="row">
<div class="form-group col-3">
<select class="form-control" id="exampleFormControlSelect1" name="myDropDown"
asp-items="(_myRepository.GetDemos()).Select(x => new SelectListItem()
{ Text = x.Name, Value = x.Id.ToString()})" onchange="this.form.submit()">
</select>
</div>
</form>
C# Method
public List<Demo> GetDemos()
{
var demos = _dbContext.Demos.Select(x => new Demo()
{
Id = x.Id,
Name = x.Name
}).ToList();
return demos;
}
You can try to dynamically set
Selectedproperty ofSelectListItem, like below.In action method