如何在Razor中填充来自其他模型的下拉列表?

问题描述 投票:0回答:1

我正在一个项目中,我有一个主要模型,该模型需要包括许多其他模型,并将它们显示在主要模型的视图上。我似乎无法从下拉列表中填充需要填充的数据。

我的一个较小模型是Entity,看起来像这样:

   public class Entity
{
    //[Required]
    public int ID { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public string Active { get; set; }
}

这是我试图将选择列表项带到的标记语言:

<div class="form-group">
                    <label asp-for="SecurityLog.EntityID" class="control-label"></label>
                    <select asp-for="SecurityLog.EntityID" class="form-control switch-disable" asp-items="EntityID">
                        <option value="">--Select Entity--</option>
                    </select>
                    <span asp-validation-for="SecurityLog.EntityID" class="text-danger"></span>
                </div>

在我的EditModel页面上,我创建了一个实体viewData,但无法使结果显示在标记中。它称为“ EntityID”:

            ViewData["EntityID"] = new SelectList(_context.Entity.Where(a => a.Active == "Y"), "ID", "Name");

我似乎无法使ViewData显示任何内容,并且一直在尝试下午的大部分时间。预先感谢!

c# .net-core razor-pages
1个回答
0
投票

您正在接近...

ViewData EntityID属性可以通过ViewBag在剃刀页面上访问。

剃刀页

<select id="entity" asp-for="SecurityLog.EntityID" class="form-control" asp- 
        items="ViewBag.EntityID">
    <option value="">--Select Entity--</option>
</select>

OnGetAsync

ViewData [“ EntityID”] =新的SelectList(_context.Entity.Where(a => a.Active ==“ Y”),“ ID”,“名称”);

© www.soinside.com 2019 - 2024. All rights reserved.