Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC5中数据库的Dropdownlist_C#_Asp.net Mvc_Html.dropdownlistfor - Fatal编程技术网

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”)