簡體   English   中英

MVC5中數據庫中的下拉列表

[英]Dropdownlist from database in MVC5

ViewModel:

public class GroepModel
    {
        public int id { get; set; }
        public String Naam { get; set; }
        public String Beschrijving { get; set; }
    }

控制器:

public class GroepController : Controller
{
    AlinaDatabaseDataContext db = new AlinaDatabaseDataContext();
    // GET: Groep
    public ActionResult Groepen()
    {
        List<GroepModel> groepen = Mapper.Map<List<GroepenWerkvorm>, List<GroepModel>>(db.GroepenWerkvorms.ToList());

        return View(groepen);
    }
}

視圖

@model alina1617.Models.GroepModel

@{
    ViewBag.Title = "Groepen";
}

<h2>Groepen</h2>
<div>
    @Html.DropDownListFor(model => model. //This is not working  )
</div>

我環顧四周,發現很多東西可以使用ViewBags解決,但使用它們不是次優的嗎? 那么,使用具有數據庫數據的模型類來獲取下拉列表的最佳方法是什么?

首先,您需要向ViewModel中添加一個SelectList:

public class MyViewModel {
   public SelectList list {get;set;}
   public int selectedItem {get;set;}
}

那么您需要將列表添加到SelectList中:

public class GroepController : Controller
{
    AlinaDatabaseDataContext db = new AlinaDatabaseDataContext();
    // GET: Groep
    public ActionResult Groepen()
    {
        List<GroepModel> groepen = Mapper.Map<List<GroepenWerkvorm>,     List<GroepModel>>(db.GroepenWerkvorms.ToList());

        var model = new MyViewModel();

        model.list = new SelectList(groepen, "id", "Naam");

        return View(model);
    }
}

並在視圖中:

@model alina1617.Models.MyViewModel

@{
    ViewBag.Title = "Groepen";
}

<h2>Groepen</h2>
<div>
    @Html.DropDownListFor(model => model.selectedItem, Model.list  )
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM