我有一个模特。这个模型看起来像这样:
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public List<Category> Parent { get; set; }
在添加操作中,我填充了Parent:
public ViewResult Add()
{
var addCategoryModel = new CategoryEditModel
{
Parent = Mapper.Map<List<Category>>(_productRepository.Categories.ToList())
};
return View("add", addCategoryModel);
}
当我提交表单时,我的模型状态始终无效,因为我在DropDownList中选择的值“..无效”。 我弄错了。这样做的正确方法是什么?
答案 0 :(得分:1)
我在MVC中遇到了一些困难时期的下降和助手。我终于采用了以下方法:
在我的视图模型中,我创建:
public List<SelectListItem> employeeList;
public int SelectedItemID;
通常会有一个get用于通过数据库/实体框架填充下拉列表:
public IEnumerable<SelectListItem> employeeList
{
get
{
return new SunGardDBEntities()
.employees
.OrderBy(e => e.employeeFName)
.ToList()
.Select(e => new SelectListItem { Text = e.employeeFName + " " + e.employeeLName, Value = e.employeeID.ToString() });
}
}
然后在我的.cshtml文件中,我说:
@Html.DropDownListFor(model => model.SelectedItemID, new SelectList(Model.employeeList, "Value", "Text"), new Dictionary<string, object> { { "data-placeholder", "Choose a sandbox..." }, { "class", "chzn-select" }, { "style", "width:200px;" } })