ASP.NET MVC 5空ApplicationUser

时间:2015-01-16 10:18:45

标签: c# linq model null asp.net-mvc-5

我有[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...

1 个答案:

答案 0 :(得分:2)

您是否尝试过“公共虚拟 ApplicationUser用户{get; set;}”?

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