使用下拉列表编辑表单,在下拉列表中显示值

时间:2011-12-02 13:04:17

标签: asp.net-mvc-3 razor drop-down-menu

我有下拉列表的编辑表单。它工作正常但是当我在editin页面上时,在下拉列表中我看到列表中的第一个值。我想要make,我可以看到我在数据库中的价值。恩。我有公司:1,2,3,4,5,当我编辑我有默认公司1.但在databese这个产品是公司4.如果我将在下拉列表中编辑表格我想要defoult显示公司4而是1。 我希望你能理解我的想法。

控制器:

[HttpGet]
        public ActionResult edytuj_prod(int ID_Produkt)
        {
            var prod = (from d in baza.Produkts
                        join s in baza.Firmas on d.ID_firma equals s.ID_firma where ID_Produkt == d.ID_Produkt
                        select new { d.ID_firma, d.nazwa_prod, d.ilosc, d.jednostka, d.cena, d.ID_Produkt, s.nazwa }).First();

            var firma = baza.Firmas;
            produktModel pr = new produktModel()
            {
                firmaList = firma.AsEnumerable().Select(x => new SelectListItem
                {
                    Value = x.ID_firma.ToString(),
                    Text = x.nazwa
                })
            };


            pr.nazwa_prod = prod.nazwa_prod;
            pr.ilosc = prod.ilosc;
            pr.jednostka = prod.jednostka;
            pr.cena = prod.cena;

            return View(pr);

查看:

<div class="editor-field">
            @Html.DropDownListFor(x => x.ID_firma, Model.firmaList)


        </div>

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望下拉列表选择已保存的项目而不是列表中的第一项。如果是,请参阅this answer

您也可以查看these constructors

public SelectList(IEnumerable items, Object selectedValue)
public SelectList(IEnumerable items, string dataValueField, string dataTextField, Object selectedValue)