Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从viewModel在Asp.net MVC 3上的下拉列表_Asp.net Mvc_Viewmodel - Fatal编程技术网

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;”})