Asp.net mvc 值不能为空
我已经为CRUD编写了ASP.NET MVC代码,但在更新、删除和详细信息时,页面抛出错误,因为值不能为null。我的代码如下:Asp.net mvc 值不能为空,asp.net-mvc,Asp.net Mvc,我已经为CRUD编写了ASP.NET MVC代码,但在更新、删除和详细信息时,页面抛出错误,因为值不能为null。我的代码如下: public ActionResult Edit(int id=0) { var alb=db.Albums.FirstOrDefault(x=>x.AlbumId==id); return View(alb); } public ActionR
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。
所以建议我做这个
这是因为变量alb和album向我显示空值
它的值没有得到任何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);
在你的错误控制器里
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>
你曾经或试图成为一个淘气的男孩
@ViewBag.ErrorMsg
这不是最优雅的解决方案,但足以让您开始。我认为我的答案中最重要的部分不是我给你的代码,而是在代码中处理这种情况(空值/丢失或无效记录)的建议这是哪种编程语言?请不要简单地将“ASP.NET MVC”称为“MVC”。一个是框架,另一个是独立于语言的设计模式。这就像将IE称为“互联网”是的……ASP.NET MVCFix是程序的逻辑,这样您就不会向页面传递空视图。在某些情况下,您可能需要完全避免查看。是的……为此,我已将id传递给页面,并将其作为隐藏@Html.HiddenFor(x=>x.AlbumId)进行保存。是的。很好,这是我们出现错误的方式,但如果我的数据库中有大量记录,为什么会出现错误。这就是我的问题所在。。。