通过 IEnumerable 来查看和显示它

Pass IEnumerable to View and Display It

我有一个实体 class Owners 需要关联的 class Cars 与之链接:

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

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

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

我在 Razor 页面中使用的模型是我的所有者:

@model Dealership.Domain.DatabaseContext

我使用脚手架 Razor 页面作为基础,但他们没有创建下拉菜单来选择要与所有者链接的汽车。我已经能够在我的控制器中使用私有可枚举 class 获得选择视图:

    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: Buttons/Create
    public IActionResult Create()
    {
        var cars = GetAllCars();
        return View(cars);
    }

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

在研究和了解有关 Razor 的更多信息后,我认为实现此目的的最简单方法是创建一个包含 IEnumerator<Cars>SelectedItem SelectedCarOwnerModel Car 的视图模型。然后我在控制器中初始化了新的视图模型并能够传递数据。