DropDownListFor控件中的第一项不应该最初选择

时间:2012-09-21 19:46:30

标签: asp.net-mvc selection html.dropdownlistfor

我的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;
        }
    }
}

2 个答案:

答案 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以获取有关每种方法的内容的更多信息。