2013-05-06 3 views
0

나는 CRUD에 대한하지만, 업데이트, 삭제 및 세부 사항 페이지가 다음과 같이 코드가 null.my 수없는 값으로 오류를 던지는 동안 ASP.NET MVC 코드를 작성했습니다 :값이 될 수 없습니다 널

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와 앨범이 나에게 어떤 ID도 얻지 못하는 null 값을 표시하기 때문입니다. 이렇게 제안 해주세요.

+1

어떤 프로그래밍 언어가 될까요? – JJJ

+7

"ASP.NET MVC"를 단순히 "MVC"로 언급하지 마십시오. 하나는 프레임 워크이고 다른 하나는 언어에 독립적 인 디자인 패턴입니다. IE 호출 - "인터넷" –

+0

yehhhh ... ASP.NET MVC – Santosh

답변

1

변수 장백의 앨범은 데이터베이스에 대한 기록은 다음 코드에서 정상적으로 그것을 처리해서는 안 있으면 그 어떤 ID

을받지 나에게 널 값을 보여주고 있기 때문입니다. 당신의 오류 컨트롤러이 비록 하지 가장 우아한 솔루션입니다

<h1>You have been, or trying to be, a naughty boy</h1> 
<p>@ViewBag.ErrorMsg</p> 

에 대한 뷰 (Index.cshtml)에 ErrorController

public ActionResult Index() { 
    ViewBag.ErrorMsg = TempData["error_msg"]; 
    return View(); 
} 

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); 

: 당신은 뭔가를해야한다 그러나 당신을 시작하게 충분히 좋았습니다. 내 대답의 가장 중요한 부분은 내가 준 코드가 아니라 코드에서 같은 상황 (null 값/누락 또는 잘못된 레코드)을 처리하라는 제안입니다.

+0

그렇습니다.이 방법은 오류가 발생하지만 데이터베이스에 많은 레코드가있는 경우 오류가 발생하는 이유입니다. 그게 내 질문 이었어 ... – Santosh

관련 문제