Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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
Javascript 如何使用我的数据库条目创建下拉列表?_Javascript_C#_Asp.net_Asp.net Core - Fatal编程技术网

Javascript 如何使用我的数据库条目创建下拉列表?

Javascript 如何使用我的数据库条目创建下拉列表?,javascript,c#,asp.net,asp.net-core,Javascript,C#,Asp.net,Asp.net Core,我试图做的是从数据库中创建一个包含所有站点的下拉列表,并在地图上选择一个进行缩放。 我刚刚创建了一个名为AdminMapController的控制器,代码如下: public class AdminMapController : Controller { private readonly ApplicationDbContext _context; public AdminMapController(ApplicationDbContext co

我试图做的是从数据库中创建一个包含所有站点的下拉列表,并在地图上选择一个进行缩放。 我刚刚创建了一个名为AdminMapController的控制器,代码如下:

    public class AdminMapController : Controller
    {
        private readonly ApplicationDbContext _context;

        public AdminMapController(ApplicationDbContext context)
        {
            _context = context;
        }
        public ActionResult GetListOfStations()
        {
            ViewBag.ListOfDropdown = _context.Stations.ToList();
            return View("~/Areas/Identity/Pages/Account/AdminMap.cshtml");
        }
        public JsonResult GetAllLocation()
        {
            var data = _context.Stations.ToList();
            return Json(data);
        }
并且视图仅用于下拉测试:

    </style>
    <br/><br/>
    <div>
        <select class="form-control">
            <option>--Select--</option>
            @foreach (var item in ViewBag.ListOfDropdown)
            {
                <option value ="@item.Id">@item.Name</option>
            }
        </select>
    </div>
    <br/>
有趣的是,GetAllLocation方法工作正常,但GetListOfStations向我抛出了一个错误NullReferenceException:对象引用未设置为对象的实例。这些就是问题所在:@foreach var item in ViewBag.ListOfDropdown和ViewData[Title]=管理映射


你知道我该如何解决这个问题吗?

我想你应该用这个作为回报:

var model = _context.Stations.ToList();
return View("~/Areas/Identity/Pages/Account/AdminMap.cshtml", model);
视图:


在这种情况下,如果要使用模型保持“否”,另一种方法是使用ViewData:

ViewData["Stations"] = _context.Stations.ToList();
从这个角度来看:

@foreach (var item in ViewData["Stations"] as IList<Stations>)
但我仍然认为模型对你的情况更有用。
使用ViewData获取不属于模型的额外信息。

是的,但我不确定如何在cshtml中的foreach中使用它。它仍然不起作用…我开始认为数据不是来自数据库…是的,我成功地获取了数据,它对我起了作用,非常感谢。我也对ViewBag进行了一些研究,似乎你所缺少的可能是你的直觉。ViewData和ViewBag都可以工作是的,经过一点研究后,我发现我应该可以使用ViewData和ViewBag获取信息,但由于某些原因,它们都不起作用,因此我必须重做我的视图和控制器,因为当我使用返回Viewpath将信息发送到视图时,视图没有得到应有的信息。但你是对的,我没有尝试IList,因为我以为ViewBag在做这个工作。无论如何谢谢你的帮助。
@foreach (var item in ViewData["Stations"] as IList<Stations>)