我正在关注一个简单的ADO.NET Entity / MVC 2教程,其中我的视图是通过右键单击操作并选择“添加视图”来创建的。根据我的模型创建视图,一切都很好。我可以从数据库中查看项目的初始列表,但是当我单击编辑或删除或详细信息时,我得到'对象引用未设置为对象的实例'。它的行为就像我的数据根本不存在所以我想我可能需要再次填充ViewData?
以下是我获取数据的方式:
CheckingEntities chk = new CheckingEntities();
//
// GET: /CheckingMVC/
[Authorize]
public ActionResult Index()
{
ViewData.Model = chk.tblCheckings.ToList();
return View();
}
以下是我获取详细信息的示例:
// GET: /CheckingMVC/Details/5
[Authorize]
public ActionResult Details(int id)
{
return View();
}
我怀疑我错误地填写了ViewData或者需要再次执行此操作,但不知道在哪里或如何执行此操作。 MVC还是一个新手。
答案 0 :(得分:0)
必须在每个请求中填充传递给您的视图的值。此外,在请求期间在控制器内设置的值不能也不会在请求之间保持,因为每个新请求都会从控制器工厂创建一组全新的控制器实例。
在您的Details()操作中,您接受一个ID,然后返回您的View,而不会在模型中放置任何数据。而是尝试这些方面的东西:
[Authorize]
public ActionResult Details(int id)
{
var item = Entities.SomeEntitySet.SingleOrDefault(e => e.Id == id);
return View("Details", item);
}