您好的實例我已經格蘭以下在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