我的OpenTestplanListViewModel有一个DisplayList,其中3个项目绑定到DropDownList。
当用户明确选择DropDownList中没有项目时,第一个项目将自动被选中。
使用ListBoxFor而不是DropDownListFor我没有这个问题。 是否有可能告诉DropDownListFor“最初不要选择任何项目!” ?
@model ITMS.Web.Models.OpenTestplanListViewModel
@{
Layout = null;
}
@using (Html.BeginForm("Open", "Testplan"))
{
@Html.ValidationSummary(false)
@Html.DropDownListFor(x => x.TestplanIdAndTemplateId, new SelectList(Model.DisplayList, "TestplanIdAndTemplateId", "Name"), new { @class = "listviewmodel" })
}
public class OpenTestplanListViewModel
{
[Required(ErrorMessage = "No item selected.")]
public string TestplanIdAndTemplateId { get; set; }
public IEnumerable<OpenTestplanViewModel> DisplayList { get; set; }
public int? SelectedTestplanId
{
get
{
return !String.IsNullOrEmpty(TestplanIdAndTemplateId) ? Convert.ToInt32(TestplanIdAndTemplateId.Split(new[] { '_' }).First()) : (int?)null;
}
}
public int? SelectedTemplateId
{
get
{
return !String.IsNullOrEmpty(TestplanIdAndTemplateId) ? Convert.ToInt32(TestplanIdAndTemplateId.Split(new[] { '_' }).Last()) : (int?)null;
}
}
}
答案 0 :(得分:2)
查看Problem with DropDownListFor SelectedItem。我想如果我理解你的问题,他们就解决了你遇到的问题。
希望这有帮助。
答案 1 :(得分:0)
@Html.DropDownListFor(x => x.TestplanIdAndTemplateId,
new SelectList(Model.DisplayList, "TestplanIdAndTemplateId", "Name"),
"-- Select Item --",
new { @class = "listviewmodel" })
发布@Display名称的问题非常相似,只是看看它。如果您想了解有关模型或控制器工作原理的更多信息,请在此处查看:Problem with DropDownListFor SelectedItem
DropDownListFor
类的方法SelectExtensions
已超载。使用8种不同的方法,可以查看http://msdn.microsoft.com/en-us/library/system.web.mvc.html.selectextensions(v=vs.108).aspx以获取有关每种方法的内容的更多信息。