当前位置: 首页 > 知识库问答 >
问题:

如何在ASP.NET Core 3.1中显示连接模型的属性值

滑弘扬
2023-03-14

我有一个问题显示用户的名字(谁创建的公司)在公司的视图列表。

下面是模型“user.cs”的一部分:

using System;
using System.Collections.Generic;

public partial class User
{
    public User()
    {
        // init here
    }
    // Connections with other Models are here as ICollection

    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public DateTime Created { get; set; }
}

下面是模型“company.cs”:

using System;
using System.Collections.Generic;

public partial class Company
{
    public Company()
    {
        Accounts = new HashSet<Accounts>();
        CompanyHistory= new HashSet<CompanyHistory>();
        Earnings= new HashSet<Earnings>();
        Expences= new HashSet<Expences>();
    }
    // other properties those aren't important
    public int? UserID { get; set; } // here is User ID

    // Other connections those aren't important
    public virtual User UserNavigation { get; set; } // Here is connection with Users
}

以下是控制器“CompamyController.cs”的一部分:

public class CompanyController : Controller
{
    private readonly MyDBContext _dbContext;
    public PoslodavacController(MyDBContext dbContext)
    {
        _dbContext = dbContext;
    }

    public IActionResult ViewCompanies()
    {
        return View(_dbContext.Company);
    }
    
    // other code irrelevant for this problem/solution
}

以下是视图“ViewCompanies.cshtml”:

@model IEnumerable<MyDatabase.Models.Company>
@using MyDatabase.Models;
@{
    ViewData["Title"] = "ViewCompanies";
    Layout = "_Layout";
}

<h1>ViewCompanies</h1>

<p>
    <a asp-action="Create">Create New</a>
</p>
<table class="table">
    <thead>
        <tr>
            <!-- other html -->
            <th>
                <p>User Name</p>
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <!-- Other html data -->
                <td>
                <!-- ATENTION HERE: @item.KorisnikNavigation is always null so the Name is not retrieved-->
                    <a asp-route-id="@item.User" asp-controller="User" asp-action="Details">@item.UserNavigation?.Name</a>
                </td>
            </tr>
        }
    </tbody>
</table>

我不知道为什么@item.korisniknavigation为空。我是否遗漏了公司构造函数中的某些代码?如果是,什么是必需的代码?

谢谢!

共有1个答案

党浩阔
2023-03-14

修复操作

public IActionResult ViewCompanies()
    {
var model=_dbContext.Set<Company>().Include(i=> i.UserNavigation ).ToArray();
        return View(model);
    }
 类似资料:
  • 我正在用Spring MVC和Thymeleaf在视图层开发一个完整的Spring应用程序。过去,我在视图层中使用过JSP和Spring MVC,但我想它们现在是恐龙了 所以我的问题是,使用JSP,通过在模型中添加值,我可以很容易地在视图中显示模型属性。在控制器中添加属性,并在JSP anywhere中显示相同的属性,占位符求值为springex${value}。所以,如果我想在页面中放置标题,我

  • 我正在使用swagger工具来记录我基于Jersey的REST API(我正在使用的swaggerui是在2014年6月下载的,我不知道这个问题是否在以后的版本中得到了解决,但由于我对其代码进行了大量定制,所以我没有选择下载最新版本,而无需再次投入大量时间进行定制)。 到目前为止,我所有的传输对象都有一级深度属性(没有嵌入的POJO)。但现在,我添加了一些返回更复杂对象(两级深度)的rest路径,

  • 问题内容: 在这种小问题中,目标是根据控制器中的验证(而不是内置或)显示错误消息。设置ng-message-exp时,不显示消息错误。关于如何使这项工作更好或如何实际工作的任何想法都与错误或模型有关? 的HTML Java脚本 问题答案: 您的主要论点受到束缚,但您从未真正向清单添加错误。因此,在您的控制器中,只需通过以下命令向对象手动添加错误: 然后,您可以让指令执行其工作。提供的子元素已经被评

  • 我用两个jsp文件和一个控制器构建了一个小servlet。 这是: 这是控制器: 当我在登录jsp页面上输入用户名和密码并点击提交时,这两个属性都显示在URL行中。 这就是我得到的: 我该怎么解决?

  • 我正在自己学习Oracle的JavaFX教程。在做了很多年(很久以前)之后,我对Swing的新智能功能非常着迷,包括。属性。我惊讶地发现,这些示例(例如:https://docs.oracle.com/javafx/2/ui_controls/table-view.htm)并没有以我认为“正确”的方式使用它们。 该示例创建一个类,其属性为字段: 但是getter不是用于属性,而是用于它们的值

  • 我有这段代码: ref是在一个IonList元素中定义的,但它表示display不存在于该元素中。我怎样才能做到这一点?我见过其他类似的帖子:post和it都没用