2011-02-04 3 views
1

컨트롤러
는 NullReferenceException을 ViewData에 액세스 할 때

public class DashboardController : Controller 
    { 
     // 
     // GET: /Dashboard/ 

     public ActionResult Index() 
     { 
      ViewData["PartnerID"] = GetPartnerID(); 
      return View(); 
     } 

     public ActionResult OutboundTransfers() 
     { 
      var partnerId = ViewData["PartnerID"].ToString();//NULL EXCEPTION 
      InventoryEntities context = new InventoryEntities(); 
      var result = context.GetOutboundTransfers(partnerId); 
      //var result = context.GetOutboundTransfers("3000017155"); 

      return View(result); 
     } 

     private static string GetPartnerID() 
     { 
      return "3000017155"; 
     } 

    } 
} 

보기 (대시 보드/색인)

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

    <h2>Index</h2> 
    <%= Html.Action("OutboundTransfers")%> 
</asp:Content> 

나는 내가 접근 할 수 있어야을 ViewData를 읽을 MVC 2에 초보자입니다 부분보기 (OutboundTranfers.ascx)를 복사본으로 사용합니다. 그럼 왜 여기에 null 참조가 생깁니 까? 대신 지수()에 ViewData["PartnerID"]을 설정

+0

@Kirk :이가 대답 –

+0

@Henk처럼 꽤 많이 보이는, 그래, 당신이 옳은 것 같아요. 이사 왔어. –

답변

1

는 컨트롤러의 생성자를 만들고과 같이이 값을 설정하려고 :

public DashboardController() 
{ 
    ViewData["PartnerID"] = GetPartnerID(); 
} 
1

ViewData는 아마도 null이 아닌 - ViewData["PartnerID"]가 null입니다. (항목이 ViewData에 없음) 또한 한 동작에서 PartnerID 데이터를 설정하고 다른 동작에서 가져옵니다. ViewData은 요청/작업에서 보존되지 않습니다. (답변에 코멘트 밖으로 이동 ...)

+0

이것은 왜 오류가 발생했는지 알려줍니다. 아마 내 기술 수준에서 나는 예지력이 부족하지만 이것이 국가 유지의 문제를 해결하는 데 도움이되지는 않습니다. –

관련 문제