ASP.NET MVC 5 空应用程序用户

ASP.NET MVC 5 empty ApplicationUser

我有一个 table [QuestionID] [描述] [User_id]。

public int QuestionID { get; set; }
public string Description { get; set; }
public ApplicationUser user { get; set; }

当用户使用表单发送问题并正确保存所有字段时,问题将存储在数据库中。

我从我的 QuestionController 发送了一个列表,其中包含我要查看的所有问题:

return View(db.Questions.ToList());

在我看来我使用了那个列表:

@foreach (var item in Model)
{
    <tr>
        <td class="td-title">
            @Html.DisplayFor(modelItem => item.QuestionID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.user.id)
        </td>
   </tr>
...

除了 item.user.id 没有显示任何值(它已填充到数据库中)之外,一切正常。这里怎么是空的?我该怎么做才能显示用户信息?

编辑:

我使用代码优先,这是我填写数据库的方式:

public ActionResult Create([Bind(Include = "QuestionID,Description")] Question question)
{
    if (ModelState.IsValid)
    {
        question.user = UserManager.FindById(User.Identity.GetUserId());

        db.Questions.Add(question);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(question);
}

表单后的数据库结果示例:

[QuestionID]  [Description]  [user_Id]
      1          blalbla..    397d27d...

你试过了吗"public virtual ApplicationUser user { get; set; }"?

我认为您必须将其设为虚拟才能访问 ApplicationUser 属性或将视图中的代码更改为“@Html.DisplayFor(modelItem => item.user)”