исключение nullreference при доступе к ViewData - PullRequest
1 голос
/ 04 февраля 2011

Контроллер

    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 ]

1 голос
/ 04 февраля 2011

ViewData предположительно не равно нулю - ViewData["PartnerID"] равно нулю.(элемент отсутствует в ViewData) Кроме того, вы устанавливаете данные PartnerID в одно действие, а извлекаете его в другое.ViewData не сохраняется между запросами / действиями.

(Перемещено из комментариев в ответ ...)

1 голос
/ 04 февраля 2011

Вместо установки ViewData["PartnerID"] в Index (), попробуйте создать конструктор для вашего контроллера и установить значение там следующим образом:

public DashboardController()
{
    ViewData["PartnerID"] = GetPartnerID();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...