繁体   English   中英

使用带有foreach的mvc从数据库获取数据

[英]Get data from the database using mvc with foreach

我正在尝试从数据库中检索数据并写出记录,但是出现错误:

An exception of type 'System.NullReferenceException' occurred in App_Web_uaarpxja.dll but was not handled in user code

Additional information: Object reference not set to an instance of an object.

数据库模型PastaModel.cs

public class Item
{
    [Key]
    public int Itemid { get; set; }
    public string Itemname { get; set; }
    public int Itemprice { get; set; }
    public int Currentstock { get; set; }
    public string Itemtype { get; set; }
    public string pictureURL { get; set; }
}

public class PastaContext : DbContext
{

    public PastaContext()
        : base("name=PastaModel")
    {
        Database.CreateIfNotExists();
    }

    public DbSet<Item> Items { get; set; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }

}

控制器ItemController.cs

public class ItemController : Controller
{

    private PastaContext db = new PastaContext();


    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index()
    {
        return View();
    }

}

查看Index.cshtml

@model IEnumerable<Oblig1.Models.Item>

<!DOCTYPE html>

<br />
<br />

<html>
<head>
    <title>Index</title>
</head>
<body>


@foreach (var item in Model)
{

     <p>@item.Itemname</p>

}


</body>
</html>

我在此行@foreach (var item in Model) {

编辑:添加了DbContext

发生这种情况是因为您没有从返回视图的控制器中注入视图中的任何内容。

并且您的视图期望从控制器获取IEnumerable<Oblig1.Models.Item> ,但是由于您没有从控制器传递模型,因此该视图在Model null。

尝试下面的代码:-

public ActionResult Index()
    {
        var model = db.Items.ToList(); ////Your model that you want to pass
        return View(model);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM