0

我的 DropDownListFor 未绑定所选项目。

这是正确的模型:

public class DeliveryOrderModel
{
    public BoxInfo Boxes { get; set; }

    public class BoxInfo
    {
        public long? CountryID { get; set; }
        public IEnumerable<SelectListItem> Countries { get; set; }
    }
}

在这个模型问题中:

public class DeliveryOrderModel
{
    public List<BoxInfo> Boxes { get; set; }

    public class BoxInfo
    {
        public long? CountryID { get; set; }
        public IEnumerable<SelectListItem> Countries { get; set; }
    }
}

这是选择项

var Countries = new SelectList(new[] 
{   
    new { CountryID = 1, Text = "Name1" }, 
    new { CountryID = 2, Text = "Name2" }, 
    new { CountryID = 3, Text = "Name3" } 
} ,"CountryID","Text");

此下拉列表适用于第一个模型:

Html.DropDownListFor(model => model.Boxes.CountryID, Model.Boxes.Countries)

这是麻烦下拉列表:

Html.DropDownListFor(model => model.Boxes[0].CountryID, Model.Boxes[0].Countries)
4

1 回答 1

0

首先想到 - SelectList 是一个集合,而不是一个数组,所以你可能需要类似的东西:

Html.DropDownListFor(model => model.Boxes.First().CountryID,
    Model.Boxes.First().Countries)

可能还需要一个 lamda 表达式.First

添加

模型可能像

public class DeliveryOrderModel
 {
 public List<BoxInfo> Boxes { get; set; }

 public class BoxInfo
 {
     publix Box myBox  { get; set; }
     public long? CountryID { get; set; }        
 }
}

CountryList 成为一个独立且独立的 SelectList ViewModel。最后是视图

    Html.DropDownListFor(model => model.Boxes[0].CountryID, Countries)

或 ForEach 遍历框,或...

好的?

于 2012-11-14T12:03:47.933 回答