0

我有一个模型。这个模型看起来像这样:

public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public List<Category> Parent { get; set; }

在添加操作中,我填充父项:

public ViewResult Add()
{
    var addCategoryModel = new CategoryEditModel
    {
        Parent = Mapper.Map<List<Category>>(_productRepository.Categories.ToList())
    };
    return View("add", addCategoryModel);
}

当我提交表单时,我的模型状态总是无效的,因为我在 DropDownList 中选择的值“..无效”。我做错了什么。这样做的正确方法是什么?

4

1 回答 1

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;" } })
于 2012-09-02T23:43:43.500 回答