Javascript 如何使用我的数据库条目创建下拉列表?
我试图做的是从数据库中创建一个包含所有站点的下拉列表,并在地图上选择一个进行缩放。 我刚刚创建了一个名为AdminMapController的控制器,代码如下: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
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>)