Razor Can';t在asp.core中显示绑定/关系模型中的名称

Razor Can';t在asp.core中显示绑定/关系模型中的名称,razor,asp.net-core,foreign-keys,entity-framework-core,Razor,Asp.net Core,Foreign Keys,Entity Framework Core,在我前面的问题()之后,我想显示Todo模型中药店的名称。实际使用的代码如下: public class Todo { public Pharmacy Pharmacy { get; set; } } public class Pharmacy { [Key] public int PharmacyID { get; set; } public string Nam

在我前面的问题()之后,我想显示Todo模型中药店的名称。实际使用的代码如下:

public class Todo
    {
        public Pharmacy Pharmacy { get; set; }
    }

    public class Pharmacy
        {
            [Key]
            public int PharmacyID { get; set; }

            public string Name { get; set; }
        }
将我的选择框的连接器插入我的创建/编辑表单:

public class PharmacynamePageModel : PageModel
    {
        [BindProperty]
        public int SelectedPharmacy { get; set; }

        public SelectList PharmacyNameSL { get; set; }

        public void PopulatePharmacysDropDownList(ApplicationDbContext _context, object selectedPharmacy = null)
        {
            var query = (from p in _context.Pharmacy orderby p.Name select p).ToList();

            PharmacyNameSL = new SelectList(query, "PharmacyID", "Name", selectedPharmacy);
        }
    }
并进入我的列表(index.cshtml):

@foreach(Model.Todo中的变量项)
{
@DisplayFor(modelItem=>item.OwnerID)
@DisplayFor(modelItem=>item.Pharmacy.Name)
}
我尝试了以下变体,但没有成功:

  • 项目.药房
  • item.Pharmacy.PharmacyID(但我要打印名称)
我使用SQLServerManagementStudio进行控制,我的专栏“PharmacyID”在创建或编辑数据后包含值

希望你能帮助我;)

提前谢谢

允许您使用模型中的导航属性加载相关实体。检查是否使用
Include
方法指定要包含在查询结果中的相关数据,如下面的示例所示

 public async Task OnGetAsync()
    {
        Todo = await _context.Todo
                              .Include(t => t.Pharmacy).ToListAsync();
    }
 public async Task OnGetAsync()
    {
        Todo = await _context.Todo
                              .Include(t => t.Pharmacy).ToListAsync();
    }