2011-03-24 3 views
0

데이터베이스의 항목 목록을 표시하는 asp.net mvc 솔루션에서 부분 뷰를 만들었습니다. 그러나 나는 다음과 같은 오류 메시지를받습니다. Object reference not set to an instance of an object.ASP.NET MVC 부분보기 도움말

나는 모든 것이 정상이라고 생각하기 때문에 이것이 일어나는 이유는 잘 모르겠습니다. 항목 목록은 VenuesController를 통해 제어되는 장소입니다. 그러나 부분보기는/shared/폴더 안에 있고보기에 대한/venues/폴더가 아니므로 asp.net이 둘을 연결하지 않기 때문에 불평하고 있습니까? 색인()가 잘 작동하고 /Views/Venues/Index.aspx하지만 VenuesList()에서 데이터를 표시

// 
// GET: /Venues/ 

public ActionResult Index() 
{ 
    return View(_repository.ListAll()); 
} 

public ActionResult VenuesList() 
{ 
    return PartialView("VenuesList",_repository.ListAll()); 
} 

이 오류가 발생합니다 :

내가 내 VenuesController에있는 코드/

감사합니다.

+0

보기를 찾을 수없는 경우 개체 참조 예외가 발생하지 않습니다. 컨트롤러 동작에 중단 점을 설정하여 문제가 있는지 확인하십시오. 뷰를 찾을 수 없으면 'Index'뷰 또는 해당 마스터를 찾을 수 없습니다. 다음 위치가 검색 한 : ~/조회/검색/Index.aspx ~/조회/검색/Index.ascx ~/조회/공유/Index.aspx ~/조회/공유/Index.ascx 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. – WorldIsRound

답변

1

당신이 언급 오류 메시지 : 컬렉션의 속성이 참조하고 null의 경우

Object reference not set to an instance of an object. 

는 일반적으로 다루고있다. 항목 목록이 다음 중 하나인지 확인하십시오.

  • 비어 있지 않습니다.
  • 제대로 인스턴스화.

컨트롤러 측면의 모든 코드를 사용하면 쉽게 알아낼 수 있습니다.

업데이트 :

가 나는 장소 모델은 그러나 두 가지 여기가 발생했을 수 있습니다 모양을 완전히 확실하지 않다. (저장소에서 목록을 전달한다) 장소의 생성자에서

  • , 는 장소의 내부 목록 속성은 이전에 항목 추가를 인스턴스화되고 있지 않습니다.

    또는

  • 저장소가 값을 반환하지 않습니다.

Venue 클래스와 그 생성자를 표시하는 추가 코드가 도움이 될 수 있습니다.

+0

/Views/Shared/폴더 안에있는 부분 뷰는 어떤 컨트롤러를 사용합니까? – Cameron

+0

모델을 부분 뷰로 전달합니까? 모델이 무엇이든지 View를 작성하고 View가 빌드 된 작업이 도움이 될 것입니다. –

+0

예 헤더와 같이 뷰에 모델을 전달합니다. '<% @ Control Language = "C#"Inherits = "System.Web.Mvc.ViewUserControl >"%> '하지만 뷰가 공유 폴더 안에 있고 장소 폴더가 아니기 때문에 어떤 컨트롤러를 사용해야 할 지 모르겠습니다. 그래서 내 컨트롤러는 어떤 컨트롤러를 사용해야합니까? – Cameron

1

부분 뷰에서 참조하는 모델의 모든 특성이 null이 아닌지 확인하십시오. 부분 뷰로 전달 된 모델이 렌더링 될 때 NullReferenceExceptions을 던지는 null 필드가있는 비슷한 경우가 있습니다.

예. 특히

<%: Model.Property %> 

또는 같은, "속성이"null의 경우

<%: Model.Property.ChildProperty %> 

은 다음 NulLReference 예외를 던질 것 "ChildProperty"에 접근을 시도하는 즉.