我已经为CRUD编写了ASP.NET MVC代码但是在更新,删除和详细信息页面时抛出了错误,因为值不能为null。我的代码如下:
public ActionResult Edit(int id=0)
{
var alb=db.Albums.FirstOrDefault(x=>x.AlbumId==id);
return View(alb);
}
public ActionResult Detail(int id=0)
{
var alb=db.Albums.Find(id);
return View(alb);
}
public ActionResult Delete(int id=0)
{
var album = db.Albums.Find(id);
return View(album);
}
我的模特是
public class Album
{
public int AlbumId { get; set; }
public int GenreId { get; set; }
public int ArtistId { get; set; }
public string AlbumTitle { get; set; }
public String Price { get; set; }
public String AlbumArtUrl { get; set; }
public Genre Genre { get; set; }
public Artist Artist { get; set; }
}
这是因为变量alb和album显示空值而没有获得任何ID。 所以建议我这个。
答案 0 :(得分:1)
这是因为变量alb和album显示为null 重视它没有得到任何ID
如果数据库中没有记录,那么您应该在代码中优雅地处理它。你应该有类似的东西:
var alb=db.Albums.FirstOrDefault(x=>x.AlbumId==id);
if (alb==null) {
// TempData, simplest way to give you an example
TempData["error_msg"] = "the record does not exists";
return RedirectToAction("index", "error");
}
return View(alb);
你的ErrorController中的
public ActionResult Index() {
ViewBag.ErrorMsg = TempData["error_msg"];
return View();
}
在错误控制器的视图(Index.cshtml
)中
<h1>You have been, or trying to be, a naughty boy</h1>
<p>@ViewBag.ErrorMsg</p>
这是不是最优雅的解决方案,但足以让您入门。我认为我的答案中最重要的部分不是我给你的代码,而是建议处理代码中的那种情况(空值/缺失或无效记录)。