Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 值不能为空_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 值不能为空

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

我已经为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。 所以建议我做这个

这是因为变量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)进行保存。是的。很好,这是我们出现错误的方式,但如果我的数据库中有大量记录,为什么会出现错误。这就是我的问题所在。。。