私のOpenTestplanListViewModelには、DropDownListにバインドされた3つのアイテムを含むDisplayListがあります。
ユーザーが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;
}
}
}