使用MVC 4和实体框架填充DropDownList

Tec*_*Guy 8 asp.net-mvc entity-framework asp.net-mvc-4

我正在开发MVC4和实体框架Application.I想填充DropDownList,我想将Category List绑定到Dodropdown列表

存储库代码

IList<Category> GetCategory();
Run Code Online (Sandbox Code Playgroud)

知识库

public IList<Category> GetCategory()
    {
        return (from c in context.Categories
                select c).ToList();

    }
Run Code Online (Sandbox Code Playgroud)

调节器

  public IList<Category> GetCategory()
    {
        return icategoryRepository.GetCategory();
    }
Run Code Online (Sandbox Code Playgroud)

之后我就在这里.如何将数据绑定到Dropdownlist?

我在这里查看代码

<label for="ProductType">Product Type</label>
       @Html.DropDownListFor(m => m.ProductType,new List<SelectListItem>)
Run Code Online (Sandbox Code Playgroud)

我的控制器代码

 public ActionResult AddProduct()
    {
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

Mor*_*son 6

如何使用ViewBag?

视图

<label for="ProductType">Product Type</label>
   @Html.DropDownListFor(m => m.ProductType,ViewBag.ListOfCategories)
Run Code Online (Sandbox Code Playgroud)

调节器

public ActionResult AddProduct()
{
    ViewBag.ListOfCategories = GetCategory();
    return View();
}
Run Code Online (Sandbox Code Playgroud)


roc*_*sdv 5

你可以这样做:

@Html.DropDownListFor(x => x.IdCategory, ViewBag.Categories)
Run Code Online (Sandbox Code Playgroud)

但我建议你避免ViewBag/ViewData并从你的viewmodel中获利:

public ActionResult AddProduct()
{
    var model = new TestModel();

//This is just a example, but I advise you to turn your IList in a SelectListItem, for view is more easy to work. Your List Categories will be like this hardcoded:

model.ListCategories= new SelectList(new[]
{
    new { Value = "1", Text = "Category 1" },
    new { Value = "2", Text = "Category 2" },
    new { Value = "3", Text = "Category 3" },
}, "Value", "Text");

return View(model);
Run Code Online (Sandbox Code Playgroud)

}

并在视图中:

@Html.DropDownListFor(x => x.IdCategory, Model.ListCategories)
Run Code Online (Sandbox Code Playgroud)

我希望我有所帮助