访问ViewData时出现nullreferenceexception

时间:2011-02-04 18:31:03

标签: c# asp.net-mvc-2

控制器

    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>

我是MVC 2的初学者。我读取ViewData应该可以作为副本访问局部视图(OutboundTranfers.ascx)。那么,为什么我在这里得到一个空引用?

2 个答案:

答案 0 :(得分:1)

不要在Index()中设置ViewData["PartnerID"],而是尝试为控制器创建一个构造函数,并将值设置为:

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

答案 1 :(得分:1)

ViewData可能不为空 - ViewData["PartnerID"]为空。 (该项目不在ViewData)此外,您在一个操作中设置PartnerID数据,在另一个操作中获取它。请求/操作之间不保留ViewData

(将评论移出答案......)