温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - Pass IEnumberable to View and Display It
asp.net-mvc c# razor razor-pages

c# - 传递IEnumberable以查看和显示它

发布于 2020-04-09 23:19:19

我有一个实体类所有者,它需要关联的汽车类与之关联:

    [Key]
    public int Id { get; set; }

    [Required]
    [MaxLength(32)]
    public string Name{ get; set; }

    [Required]
    public Cars AssociatedCar { get; set; }

我在“剃刀”页面中使用的模型是我的所有者:

@model Dealership.Domain.DatabaseContext

我将脚手架的Razor页面用作基础,但是它们没有创建下拉菜单来选择要与车主链接的汽车。我已经可以使用控制器内的私有可枚举类来获得选择视图:

    private IEnumerable<SelectListItem> GetAllCars()
    {
        var Cars = _carData.GetAllCars().Result;

        var List = Cars.Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.Name });

        return new SelectList(List, "Value", "Text");
    }

然后,我将其设置在支架式get控制器中:

    // GET: Buttons/Create
    public IActionResult Create()
    {
        var cars = GetAllCars();
        return View(cars);
    }

我的问题是如何通过变量使汽车显示在页面上?如果无法完成,还有另一种方法可以将汽车添加到视图中吗?我是Razor的新手,不确定是否可以使用脚手架页面。

查看更多

提问者
Jakxna360
被浏览
65
Jakxna360 2020-02-02 20:58

在研究和学习了有关Razor的更多信息之后,我想到了最简单的方法是创建一个包含an IEnumberator<Cars>,a SelectedItem SelectedCar的视图模型OwnerModel Car然后,我在控制器中初始化了新的视图模型,并能够传递数据。