您好的实例我已经格兰以下在HomeController.cs代码对象引用不设置为一个对象
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using MovieApp.Models;
namespace MovieApp.Controllers
{
public class HomeController : Controller
{
private MoviesDBEntities _db = new MoviesDBEntities();
//
// GET: /Home/
public ActionResult Index()
{
return View(_db.MovieSet.ToList());
}
//
// GET: /Home/Details/5
public ActionResult Details(int id)
{
return View(_db.MovieSet);
}
//
// GET: /Home/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Home/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Exclude = "Id")] Movie movieToCreate)
{
if (!ModelState.IsValid)
return View();
_db.AddToMovieSet(movieToCreate);
_db.SaveChanges();
return RedirectToAction("Index");
}
//
// GET: /Home/Edit/5
public ActionResult Edit(int id)
{
var movieToEdit = (from m in _db.MovieSet
where m.Id == id
select m).First();
return View(movieToEdit);
}
//
// POST: /Home/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Movie movieToEdit)
{
var originalMovie = (from m in _db.MovieSet
where m.Id == movieToEdit.Id
select m).First();
if (!ModelState.IsValid)
return View(originalMovie);
_db.ApplyPropertyChanges(originalMovie.EntityKey.EntitySetName, movieToEdit);
_db.SaveChanges();
return RedirectToAction("Index");
}
}
}
我已经创建了一个详细用下面的代码查看:
<fieldset>
<legend>Fields</legend>
<p>
Id:
<%= Html.Encode(Model.Id) %>
</p>
<p>
Title:
<%= Html.Encode(Model.Title) %>
</p>
<p>
Director:
<%= Html.Encode(Model.Director) %>
</p>
<p>
DateReleased:
<%= Html.Encode(String.Format("{0:g}", Model.DateReleased)) %>
</p>
</fieldset>
然而,当我运行它,我得到一个错误,指出对象引用未设置为此行上对象的实例:<%= Html.Encode(Model.Id) %>
我假设我在Details ActionResult下的HomeController.cs中丢失了某些内容。但是什么?
谢谢。
编辑2:
添加此的代码:
public ActionResult Details(int id)
{
//return View();
var movieToView = (from m in _db.MovieSet
where m.Id == id
select m).First();
return View(movieToView);
解决了这个问题。但为什么我需要指定这个?返回View()不只是显示它?为什么?
Model is null .. MovieApp.Models的后期代码,它可能被声明和初始化,我们将尝试查看可能的错误。 – 2010-11-02 13:36:08
已添加到原始问题 – Cameron 2010-11-02 13:38:47
检查Exception.StackTrace - 如果您在调试模式下运行,它将包含行号。 – 2010-11-02 13:40:28