2011-02-04 20 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)をコピーとして表示します。だから、なぜここでヌル参照を取得するのですか?

+0

@Kirk:これはかなりの答え –

+0

@Henkのように見えます、ええ、あなたが正しいことを推測します。それを動かした。 –

答えて

1

代わりのインデックスにViewData["PartnerID"]を設定()、お使いのコントローラのコンストラクタを作成し、そのようにそこ値を設定してみてください:

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

ViewDataおそらくnullでない - ViewData["PartnerID"]はnullです。 (アイテムはViewDataにありません)また、PartnerIDデータを1つのアクションに設定し、もう1つのアクションでフェッチします。 ViewDataは要求/アクション間で保持されません。

は(答えへのコメントの外に移動...)

+0

これはエラーがなぜ発生するのかを教えてくれます。私の技術レベルでは、先見性が欠けているかもしれませんが、これは私が状態を維持する問題を解決するのに役立ちません。 –

関連する問題