1

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

2 回答 2

2

调查 DropDownListFor SelectedItem的问题。我想如果我正确理解了您的问题,他们就解决了您遇到的问题。

希望这可以帮助。

于 2012-09-21T19:50:40.050 回答
0
@Html.DropDownListFor(x => x.TestplanIdAndTemplateId,
    new SelectList(Model.DisplayList, "TestplanIdAndTemplateId", "Name"),
    "-- Select Item --",
    new { @class = "listviewmodel" }) 

@Display Name 发布的问题非常相似,只是看了一下。如果您想了解有关模型或控制器如何工作的更多信息,请在此处查看:DropDownListFor SelectedItem 的问题

DropDownListFor类的方法SelectExtensions被重载。使用 8 种不同的方法,请查看http://msdn.microsoft.com/en-us/library/system.web.mvc.html.selectextensions(v=vs.108).aspx,了解有关每种方法的作用和作用的更多信息。

于 2012-09-21T19:52:15.540 回答