Asp.net mvc 从viewModel在Asp.net MVC 3上的下拉列表
我有一个模型。此模型如下所示:Asp.net mvc 从viewModel在Asp.net MVC 3上的下拉列表,asp.net-mvc,viewmodel,Asp.net Mvc,Viewmodel,我有一个模型。此模型如下所示: public int Id { get; set; } [Required] public string Name { get; set; } [Required] public List<Category> Parent { get; set; } public int Id{get;set;} [必需] 公共字符串名称{get;set;} [必需] 公共列表父项{get;set;} 在添加操作中,我填充父项: public ViewResult
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public List<Category> Parent { get; set; }
public int Id{get;set;}
[必需]
公共字符串名称{get;set;}
[必需]
公共列表父项{get;set;}
在添加操作中,我填充父项:
public ViewResult Add()
{
var addCategoryModel = new CategoryEditModel
{
Parent = Mapper.Map<List<Category>>(_productRepository.Categories.ToList())
};
return View("add", addCategoryModel);
}
公共视图结果添加()
{
var addCategoryModel=新的CategoryEditModel
{
Parent=Mapper.Map(_productRepository.Categories.ToList())
};
返回视图(“添加”,addCategoryModel);
}
提交表单时,我的模型状态始终无效,因为我在DropDownList“.中选择的值无效。”
我做错了什么。正确的方法是什么?我也曾在MVC中遇到过一些下拉列表和帮助工具。我最终采用了以下方法: 在我的视图模型中,我创建:
public List<SelectListItem> employeeList;
public int SelectedItemID;
public List employeeList;
公共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() });
}
}
public IEnumerable employeeList
{
得到
{
返回新的SunGardDBEntities()
.雇员
.OrderBy(e=>e.employeeFName)
托利斯先生()
.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;" } })
@Html.DropDownListFor(model=>model.SelectedItemID,新建SelectList(model.employeeList,“Value”,“Text”),新建字典{{{“数据占位符”,“选择沙盒…”,{“类”,“chzn选择”},{“样式”,“宽度:200px;”})