MVC下拉列表,获取数据

时间:2016-03-01 13:06:45

标签: c# asp.net-mvc drop-down-menu

我需要帮助我正在为我的雇主做的一个项目,但是我和MVC一起工作已经很长时间了,我是这里唯一的后端人员而且我是实习生,所以嘿......

当我想创建产品时。我需要有一个下拉列表,其中包含所有客户的列表(甚至可能订购A - Z)

我做错了什么,我没看到什么。到目前为止我的结果就是它输出了Object。我真的不知道如何在不使用Foreach的情况下获取customer.Name,这在DropdownList中最终会变得奇怪

atm它看起来像这样

@model Co56_Invoice_.Models.Collection
<h2>Skapa ny produkt</h2>
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
        <h4>Product</h4>
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            <div class="col-md-10">
                     @Html.DropDownList("Kunder", new SelectList(Model.customer), "Välj kund")
            </div>
         </div>
     </div>
}

集合类是客户和产品列表

public class Collection
{
    public List<Customer> customer { get; set; }
    public List<Product> product { get; set; }
}

继承我的创造产品行动

public ActionResult Create()
    {
        col.customer = (from o in db.Customers select o).ToList();
        return View(col);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "CustomerID,ProductID,Name,StartDate,Interval,Price,YearPrice,TotalPrice,Category,Paid")] Product product)
    {
        try
        {
            if (ModelState.IsValid)
            {
                db.Products.Add(product);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
        }
        catch(Exception e)
        {
            throw e.InnerException;
        }

        return View(product);
    }

1 个答案:

答案 0 :(得分:0)

您需要将List转换为SelectList()。试试这个

@Html.DropDownList("Kunder", Model.customer.Select(x => new SelectListItem() { Text = x.Name.ToString(), Value = x.CustomerId.ToString() }).ToList(), "Välj kund")