c#MVC - 从类属性填充DropDownList

时间:2016-06-26 00:52:59

标签: c# asp.net-mvc entity-framework dropdownlistfor

我和EF和MVC合作,给我带来了新的东西。 我有以下课程:

 public class Client
{
    [Key]
    public int ClientId { get; set; }
    public Category Category { get; set; }

}

我希望在与#34;创建"相关的视图中显示ActionResult,一个可选的DropDownList,包含所有类别,可以选择一个。

我还有一个ViewModel:

public class CategoryViewModel
{
    public int SelectedCategoryId { get; set; }
    public IEnumerable<SelectListItem> Categories { get; set; }
}
我在控制器中使用的

private IEnumerable<SelectListItem> GetCategories()
    {
        var db = new MyDBContext();
        var categories = db.Categories
                    .Select(x =>
                            new Category
                            {
                                CategoryId = x.CategoryId,
                                Name = x.Name
                            });

        return new SelectList(categories, "Value", "Text");
    }

...并在Create()中:

public ActionResult Create()
    {
        var model = new CategoryViewModel();
        model.Categories = GetCategories();
        return View(model);
    }

我不知道如何填充视图中的下拉列表:

<div class="form-group">
        @Html.LabelFor(model => model.Category, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownListFor(WHAT GOES HERE????)

        </div>
    </div>

感谢您救我! (RE5引用)

1 个答案:

答案 0 :(得分:2)

有不同的overloads,但这是一个选项:

@Html.DropDownListFor(x => x.SelectedCategoryId, Model.Categories)