0
我想使用下拉列表,问题是所选项目总是添加的第一个项目。并且控制器中设置的选定属性完全忽略。Dropdownlist总是选择第一个项目,而不管选定属性(ASP.NET MVC)
也许我错过了一些基本的东西,但我没有看到代码中没有错。
Ho wever我可以看到生成的HTML代码不显示选定的属性。
你们是否在下面的代码中发现任何错误?
控制器
public ActionResult Index()
{
HomeModel model = new HomeModel();
List<SelectListItem> ddlItems = new List<SelectListItem>();
SelectListItem Opt1 = new SelectListItem { Text = "Opt1", Value = "1" };
SelectListItem Opt2 = new SelectListItem { Text = "Opt2", Value = "2", Selected = true };
ddlItems.Add(Opt1);//The first item added is always the selected one
ddlItems.Add(Opt2);
model.DDL = ddlItems;
return View("Index", model);
}
型号
public class HomeModel
{
public List<SelectListItem> DDL { get; set; }
}
查看
@Html.DropDownListFor(m => m.DDL, Model.DDL, new { id = "ddlId"})
生成的HTML
<select name="DDL" id="DDL">
<option value="1">Opt1</option>
<option value="2">Opt2</option>
</select>
你好Stephen Muecke,这确实有效!但我宁愿不使用SelectedItem属性,因为它不太直观。谢谢! – Nelssen
不知道你的意思是_less_直觉_它的方式'DropDownListFor()'的作品 - 第一个参数是你绑定的属性的值,第二个参数是用于生成选项的集合。 –
不那么直观,因为您绑定到selectedItem属性而不是绑定模型集合。使用选定的属性会更容易理解。但如果我理解得很好,我只能通过Dropdownlist实现这一点(无需绑定),对吧? – Nelssen