kenzolek
kenzolek

Reputation: 344

Using @Html.DropDownListFor

I created list of objects in controller and I would like show one of property in DropDownList. This is my controller:

public class HomeController : Controller
    {
        public ActionResult Index()
        {
            List<Product> product = new List<Product>();

            product.Add(new Product() { ProductId = 1, Name = "apple", Price = 1.09 });
            product.Add(new Product() { ProductId = 2, Name = "peach", Price = 1.57 });
            product.Add(new Product() { ProductId = 3, Name = "banana", Price = 1.15 });
            product.Add(new Product() { ProductId = 4, Name = "watermelon", Price = 4.50 });
            product.Add(new Product() { ProductId = 5, Name = "melon", Price = 5.06 });
            product.Add(new Product() { ProductId = 6, Name = "strawberries", Price = 6.99 });
            product.Add(new Product() { ProductId = 7, Name = "raspberries", Price = 2.20 });

            return View(product);
        }
    }

And I try use it into my View below but it return false. How can I use helper @Html.DropDownListFor?

@foreach(var name in Model.Name)
    { 
        @Html.DropDownListFor(name.Name ,name.ToString())
    }

Upvotes: 0

Views: 110

Answers (2)

Ervis Trupja
Ervis Trupja

Reputation: 2800

I am assuming that for the Product class looks like:

public class Product
{
    public int ProductId { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}

And let us say that you have the following model:

public class ProductModel 
{
   public int MyProductId { get; set; }
}

And finally you have created the list of Products (like you have shown)

List<Product> product = new List<Product>();

            produkt.Add(new Product() { ProductId = 1, Name = "apple", Price = 1.09 });
            produkt.Add(new Product() { ProductId = 2, Name = "peach", Price = 1.57 });
            produkt.Add(new Product() { ProductId = 3, Name = "banana", Price = 1.15 });
            produkt.Add(new Product() { ProductId = 4, Name = "watermelon", Price = 4.50 });
            produkt.Add(new Product() { ProductId = 5, Name = "melon", Price = 5.06 });
            produkt.Add(new Product() { ProductId = 6, Name = "strawberries", Price = 6.99 });
            produkt.Add(new Product() { ProductId = 7, Name = "raspberries", Price = 2.20 });

In your view you can create a drop down list like so:

@model ProductModel

@Html.DropDownListFor(n => n.MyProductId, 
                         new SelectList(product, "ProductId", "Name"))

For more info you can have a look at this article

Upvotes: 2

David
David

Reputation: 641

Give this a go :)

@model App.Models.Model

@Html.DropDownListFor(x => x.ProductId, new SelectList(Product, "Name", "Price"))

Upvotes: 0

Related Questions