我有[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...
答案 0 :(得分:2)
您是否尝试过“公共虚拟 ApplicationUser用户{get; set;}”?
我认为您必须虚拟访问ApplicationUser属性或将视图中的代码更改为“@ Html.DisplayFor(modelItem =&gt; item.user)”