我遇到了一些问题。 我刚刚创建了一个名为Student的类,它有一个其他类对象,它是Batch as
public class Student{
public Batch batch {get;set;}
public string Name{get;set;}
public string CNIC {get;set;}
}
这是批次类
public class Batch {
public string BatchName {get;set;}
public int BatchYear {get;set;}
}
我为Student类创建了一个强类型视图,现在我应该如何使用DropdownListFor方法帮助器显示带有User的批处理对象。 提前谢谢。
答案 0 :(得分:2)
DropDownListFor
需要List<SelectListItem>
并将其转换为列表。因此,您需要构建List<SelectListItem>
并将其传递给View模型中的视图。您将无法直接在DropDownListFor
课程中使用batch
。
要显示批次类的下拉列表,请尝试以下内容
public class Student{
public Student()
{
BatchSelectList = new List<SelectListItem>();
BatchSelectList.Add(new SelectListItem { Text = "Some Label", Value = "Some Val" };
}
public Batch batch {get;set;}
public string Name{get;set;}
public string CNIC {get;set;}
//Drop down properties used in view
public String BatchSelectedItem { get; set; }
public List<SelectListItem> BatchSelectList { get; set; }
}
通过上述内容,您将为列表BatchSelectedItem
中选择的项目构建占位符,并且您还在构建将在视图中使用的选择列表。
在您看来,您需要以下内容。
@Html.DropDownListFor(x => x.BatchSelectedItem, Model.BatchSelectList)
第一个选项是选择列表绑定的属性,第二个属性是填充DropDownListFor
答案 1 :(得分:-1)
您可以在学生模型中创建批处理列表
public class Student{
public Batch batch {get;set;}
public string Name{get;set;}
public string CNIC {get;set;}
public List<Batch> batchList {get;set;}
}
然后在您的模型上,您可以将DropDownList设置为:
@Html.DropDownListFor(model => model.batch, new SelectList(Model.batchList,"BatchYear","BatchName"))
在上面的代码中,您设置批处理的DDL由batchList填充,显示BatchName并将值设置为BatchYear。