Home > Mobile >  WebApplication.Models.Category instead of value
WebApplication.Models.Category instead of value

Time:02-09

I want to add a DropDownList in my Insert View.

Controller:

public ActionResult Create()
{
    ViewBag.CategoryList = new SelectList(Category.GetCategories());
    return View("Insert", new Category()); 
}

View:

    @Html.DropDownListFor(model => model.Category, (IEnumerable<SelectListItem>) 
   (ViewBag.CategoryList), "Select Category", htmlAttributes: new { @class = "form-control" })

The Category class has only one string field named Title. Instead of getting the value of Title I'm getting WebApplication.Models.Category.

CodePudding user response:

Check that the Title is defined as property and not a field to be data binding work properly.

Then try the following:

public ActionResult Create()
{
    ViewBag.CategoryList = Category.GetCategories();
    return View("Insert", new Product()); 
}

And in the Insert view:

@using WebApplication1.Models @* Category namespace *@
@model WebApplication1.Models.Product

@{   
    IEnumerable<Category> categories = (IEnumerable<Category>)ViewBag.CategoryList;
}

@Html.DropDownListFor(m => categories.GetEnumerator().Current,
          categories.Select(d =>
          {
              return new SelectListItem() { Text = d.Title, Value = d.Title };
          }),
          "Select Category", new { @class = "form-control" })
  •  Tags:  
  • Related