在加载视图时访问Model的空引用错误“对象引用未设置为对象的实例”

时间:2013-06-20 16:58:55

标签: asp.net-mvc-3

@model IEnumerable<SportsStore.Domain.Entities.Product>.....this is my view List.cshtml

@{
    ViewBag.Title = "Products";
}
@foreach (var j in Model) //getting error at Model
{ 
    <div class="item">
        <h3>@j.Name</h3>
        @j.Description
        <h4>@j.Price.ToString("C")</h4>
    </div>
}
在我可以准备数据库的部分之前的专业Asp.Net MVC3第7章中的sportstore示例

这是我的控制器

 public class ProductController : Controller
    {
        public ProductController()
        { 
        }
        //
        // GET: /Product/
        private IProductRepository repository;
        public ProductController(IProductRepository productrepository)
        {
            repository=productrepository;
        }
        public ViewResult List()
        {
            return View();
        }

3 个答案:

答案 0 :(得分:1)

当你通过IEnumerable时,你应该将它作为List或类似的东西传递,例如你的索引操作方法应该是这样的:

public ActionResult Index()
{
  return View(_dbContext.Product.ToList());
}

答案 1 :(得分:0)

你需要初始化我想象的模型,就像我们在C#中做的那样: 假设我们有一个类,那么我们初始化类似:

Model m1= new Model();

确保您也检查了所有要传递的项目的空值。

答案 2 :(得分:0)

在EFDbContext类中,我继承了DbConntext并且对我有用,希望它对你也有所帮助:

using SportsStore.Domain.Entities;
using System.Data.Entity;

namespace SportsStore.Domain.Concrete
{
public class EFDbContext : DbContext
    {
        public DbSet<Product> Products { get; set; }
    }
}