C# MVC5中数据库的Dropdownlist
视图模型:C# MVC5中数据库的Dropdownlist,c#,asp.net-mvc,html.dropdownlistfor,C#,Asp.net Mvc,Html.dropdownlistfor,视图模型: 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
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);
}
}
控制器:
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);
}
}
公共类GroepController:Controller
{
AlinaDataTableDataContext db=新的AlinaDatabaseDataContext();
//得到:格罗普
公众行动结果Groepen()
{
List groepen=Mapper.Map(db.groepenwerkforms.ToList());
返回视图(groepen);
}
}
查看
@model alina1617.Models.GroepModel
@{
ViewBag.Title = "Groepen";
}
<h2>Groepen</h2>
<div>
@Html.DropDownListFor(model => model. //This is not working )
</div>
@model alina1617.Models.GroepModel
@{
ViewBag.Title=“Groepen”;
}
格罗彭
@Html.DropDownListFor(model=>model//这不起作用)
我环顾四周,发现很多东西都可以用ViewBags来解决这个问题,但使用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);
}
}
公共类GroepController:Controller
{
AlinaDataTableDataContext db=新的AlinaDatabaseDataContext();
//得到:格罗普
公众行动结果Groepen()
{
List groepen=Mapper.Map(db.groepenwerkforms.ToList());
var模型=新的MyViewModel();
model.list=新选择列表(groepen,“id”,“Naam”);
返回视图(模型);
}
}
并且认为:
@model alina1617.Models.MyViewModel
@{
ViewBag.Title = "Groepen";
}
<h2>Groepen</h2>
<div>
@Html.DropDownListFor(model => model.selectedItem, Model.list )
</div>
@model alina1617.Models.MyViewModel
@{
ViewBag.Title=“Groepen”;
}
格罗彭
@Html.DropDownListFor(model=>model.selectedItem,model.list)
首先,视图使用名为Name
的属性,但在GroepModel
中没有名为Name
的属性,在我键入model时不会生成任何内容。(所以甚至没有显示属性),所以我无意中键入了名称,但它根本不起作用。基本上,它说“DropDownListFor没有重载接受0个参数。它可以来自DatabaseContext类吗?”?它是如何连接的?返回列表项时使用@model IEnumerable,并使用@foreach(模型中的var项)检索项下拉列表需要IEnumerable
type。。但是你提供了你的自定义类型..快速提问,如果我把它放在一个viewbag中会怎么样(因为我需要在一个视图上有多个下拉列表)。我试过:@Html.DropDownListFor(model=>model.selectedItem,ViewBag.model.list,“Selecteer-een-groep”)但这似乎不起作用,@Html.DropDownListFor(ViewBag.model.list,“Selecteer-een-groep”)也没有找到:@Html.DropDownListFor(model=>model.selectedItem,ViewBag.model.list作为IEnumerable,“selecteen-groep”)