gpt4 book ai didi

c# - 基本 MVC View 将模型属性返回为 null

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:13 24 4
gpt4 key购买 nike

这是设置:

型号:

public class Device
{
[Key]
public int Id { get; set; }
[MaxLength(50)]
public String Name { get; set; }
public Category Category { get; set; }
public Manufactor Manufactor { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual ICollection<Status> Status { get; set; }
}

Controller Action :

public ActionResult Index()
{
var devices = db.Devices.Include("Categories").Include("Manufactors").Select(x => new Device
{
Name = x.Name,
Category = x.Category,
Comments = x.Comments,
Manufactor = x.Manufactor,
Status = x.Status
});
return View(db.Devices.ToList());
}

查看:

@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Manufactor.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Category.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Status)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}

这里的问题是,只显示名称,但不显示 item.Categoryitem.Manufactor。如果我将行更改为简单的 @item.Category.Name,我将遇到 Nullreference 异常。

查看我的数据库中的设备表,列出了 2 个设备,每个设备中都有一个 CategoryId 和 ManufactorId。

我认为这 20 分钟很简单,但似乎我在某个地方犯了大错。请帮我解决这个错误。

如果您需要其他代码,只需将其发布在评论中即可。

亲切的问候

编辑:作为对那些非常有帮助的答案的回应:错误是我的错误 Controller 操作。该解决方案有效:

return View(db.Devices.Include(d => d.Manufactor).Include(d => d.Category).ToList());

最佳答案

您的模型属性称为 Category,而不是 Categories, 因此请确保您正在制作正确的 Include:

db.Devices.Include("Category")...

当然,制造商也是如此。您的模型属性名为 Manufactor 而不是 Manufactors 因此请包含正确的属性:

.Include("Manufactor")

现在 EF 将在表中进行适当的连接并组合您可以在 View 中使用的 CategoryManufactor 属性。

关于c# - 基本 MVC View 将模型属性返回为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19436017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com