Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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
Drop down menu 跨视图/模型的下拉列表_Drop Down Menu - Fatal编程技术网

Drop down menu 跨视图/模型的下拉列表

Drop down menu 跨视图/模型的下拉列表,drop-down-menu,Drop Down Menu,我正在尝试创建一个下拉列表,如果该列表与模型/控制器位于同一视图中,这就足够简单了,但是我正在尝试在另一个视图中创建下拉列表。我正在使用“using.samplemodel.Models;”语句,该语句似乎能够访问正确的数据库,但是无论我使用哪种方法调用数据库中的列表项(已填充),我都会不断得到错误“there's no key”类别“甚至我在语句中使用了Id字段,我目前正在使用Viewbag选项调用数据库信息,但是,无论我尝试哪种方法,我仍然会得到相同的错误 The class of the

我正在尝试创建一个下拉列表,如果该列表与模型/控制器位于同一视图中,这就足够简单了,但是我正在尝试在另一个视图中创建下拉列表。我正在使用“using.samplemodel.Models;”语句,该语句似乎能够访问正确的数据库,但是无论我使用哪种方法调用数据库中的列表项(已填充),我都会不断得到错误“there's no key”类别“甚至我在语句中使用了Id字段,我目前正在使用Viewbag选项调用数据库信息,但是,无论我尝试哪种方法,我仍然会得到相同的错误

 The class of the view I am wanting to use drop down list in:

namespace Fake.Models
{
    public class Fake
    {
        public int Id { get; set; }
        public List<SelectList> Categories { get; set; }

      }
}



 Model of the Category class pulling from database:

namespace Fake.Models
{
    public class Categories
    {
        public int Id { get; set; }
        public string CategoryName { get; set; }
    }
}




 controller of the view intended to use dropdown list:

namespace Fake.Controllers
{
    public class FakeController : Controller
    {

        FakeDb _db = new FakeDb();


        public ActionResult Index()
        {
            var model = from a in _db.Fake1 orderby a.Date ascending select a;
            ViewBag.Categories = new SelectList(_db.Categories, "Id", "CategoryName");
            return View(model);
        }




The view I am trying to get dropdown list to work in:

@model fakename.Models.Modelname
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
<div class="form-group col-md-offset-2 col-md-10">
            @Html.DropDownList("Categories", "Select Category")
            // Omitted Info not related
        </div>
}
我要在下拉列表中使用的视图类:
名称空间伪造。模型
{
公课假
{
公共int Id{get;set;}
公共列表类别{get;set;}
}
}
从数据库中提取类别类的模型:
名称空间伪造。模型
{
公共课类别
{
公共int Id{get;set;}
公共字符串CategoryName{get;set;}
}
}
要使用下拉列表的视图的控制器:
名称空间假的。控制器
{
公共类伪造控制器:控制器
{
FakeDb _db=新的FakeDb();
公共行动结果索引()
{
var模型=从a in_db.Fake1 orderby a.日期升序选择a;
ViewBag.Categories=新的选择列表(_db.Categories,“Id”,“CategoryName”);
返回视图(模型);
}
我正在尝试使用下拉列表的视图:
@模型fakename.Models.Modelname
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.DropDownList(“类别”、“选择类别”)
//省略的信息不相关
}

很抱歉,这里的代码片段与我希望的表单不完全匹配。因此,我在这里添加了一个jpeg格式的窗口片段以防万一。

答案很简单。但对于像我这样的新手来说仍然很复杂…需要ado.net实体才能工作。

我知道数据库正在工作,因为在类别视图中,我可以更新e类别数据库具有编辑、删除、创建等功能。因此,问题不在于数据库或类别类(我认为),问题似乎在于试图将信息从类别转移到“假”类别查看下拉列表我只使用了一个数据库,我在一个数据库中有多个表,我为这个应用程序创建了所有视图,每个视图都按预期分别工作。好的,我解决了这个问题,我实际上在控制器的错误区域放置了viewbag代码,但是现在我得到了一个“没有类型为‘Ienumerable’的ViewData项具有键“Categories”,即使我键入了表中的“Id”作为类别,但仍然会得到相同的错误,我需要在@Html.Dropdownlist(等等)中输入什么为了让它工作,如果我只注释掉这一行,页面就会打开,问题在于控制器中的dropdownlist html帮助程序或viewbag代码,或者我希望加载的页面的“fake”类。