gpt4 book ai didi

razor - 如何将 DbContext 从模型绑定(bind)到 View

转载 作者:行者123 更新时间:2023-12-04 05:16:38 26 4
gpt4 key购买 nike

我是 MVC 新手,遇到了这个简单的问题(我认为)。
我有一个 DbContext

public class UsersContext : DbContext
{
public UsersContext() : base("Share_DB") {}
public DbSet<ItemDB> Items { get; set; }
}

其中包含带有 id 和 Title 的项目列表:
[Table("Items")]
public class ItemDB
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Title { get; set; }
}

我想将包含数据库表中所有项目的列表绑定(bind)到模型。但是我不知道该怎么做。

在 View (cshtml 文件)中,我想我已经定义了我必须使用的模型( @model XXX.Models.ItemModel ),然后使用以下内容显示它:
<ul>
@foreach (XXX.Models.ItemModel.ItemDB item in @Items)
{
<li>@item.Title</li>
}
</ul>

但是它找不到 @Items未找到属性。我怎么写这个?

最佳答案

MVC 的工作方式是当您在 Controller 中返回 View 时,传递给 View() 的任何内容最终都会作为 Model 属性。换句话说:

public ActionResult Index()
{
return View("Hello World");
}

将字符串“Hello World”传递给您的 View 。然后在您的 Index.cshtml 文件的顶部,您需要声明模型类型:
@model string

用法变为:
<div>@Model</div>

在您的情况下,您只需将 Items 列表传递给 View ,并告诉它期望正确类型的模型:
public ActionResult Index()
{
using (var db = new UsersContext())
{
var items = db.Items.ToList();

return View(items);
}
}

然后在你看来:
@model IEnumerable<ItemDB>

您可以将其用作:
@foreach (var item in Model)
{
<div>@item.Title</item>
}

关于razor - 如何将 DbContext 从模型绑定(bind)到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184628/

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