我试图在用户更改下拉列表项后保留下拉列表的选定值但是它无法按预期工作我想要的是在下拉列表中保留所选项但是它默认为{{1}每次我从下拉列表中选择项目,一旦用户更改它回发页面(我知道MVC中没有回发)
我在这里做错了什么?
Select Company
<div class="form-group">
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @id = "form_dropdown" }))
{
@Html.DropDownListFor(m => m.ListOfCompanies,
new SelectList((System.Collections.IEnumerable)Model.ListOfCompanies, "Value", "Text"),
"Select Company", new { @class = "form-control", Name = "sel" })
}
型号:
[HttpPost]
public ActionResult Index(string sel)
{
var vModel = new EmployeeViewModel();
vModel = _db.GetEmployee.ToList();
//load list of companies:
var company = _db.LoadComapny.ToList();
IEnumerable<SelectListItem> result = model.Select(b => new SelectListItem
{
Value = b.Value,
Text = b.Text,
Selected = b.Text == sel
}).ToList();
vModel.ListOfCompanies = company;
vModel.SELECTED_COMPANY = sel;
return View(vModel);
}
答案 0 :(得分:1)
将其更新为
@Html.DropDownListFor(m => m.SELECTED_COMPANY,
new SelectList((System.Collections.IEnumerable)Model.ListOfCompanies, "Value", "Text"),
"Select Company", new { @class = "form-control", Name = "sel" })
答案 1 :(得分:1)
DropdownListFor
有两个重要的argumnets:
=>
))第一个是SelectList
项目可用
@Html.DropDownListFor(m => m.SELECTED_COMPANY,
new SelectList(Model.ListOfCompanies, "Value", "Text"),
"Select Company", new { @class = "form-control", Name = "sel" })