2010-01-05 1 views
3

У меня есть пользовательская страница Error.aspx в моем приложении ASP.NET MVC. Страница ошибок использует мастер-страницу (которая, в свою очередь, использует другую главную страницу), и в главной странице есть вызов HtmlHelper:HtmlHelper имеет значение null в главной странице Error.aspx

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Unsecure.Master" ... %> 
... 
Html.RenderPartial("LogOnUserControl") 

Мой web.config настроен использовать эту страницу ошибок для всех ошибки:

<customErrors mode="RemoteOnly" defaultRedirect="/Views/Shared/Error.aspx" /> 

Проблема в том, что свойство Html ViewMasterPage имеет значение NULL. Я понимаю, что это свойство просто вытягивается из свойства Html ViewPage, которое также равно null. Таким образом, любая попытка вызова частичного метода против HtmlHelper завершается с ошибкой NullReferenceException.

Почему HtmlHelper null?

+0

Решен ли вопрос? Я столкнулся с такой же проблемой :( –

+0

К сожалению, я не помню. Это было так давно, и я больше не работаю над этим проектом. Я плохой SO contributor :-( – Trinition

ответ

0

ли ваша MasterPage Page Directive выглядеть следующим образом:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

без Inherits атрибута Html * не существует..

+1

Кроме того, defaultRedirect должен работать с вашей маршрутизацией и не указывать непосредственно на файл View. mark123

+1

Отметить, что это был один путь, по которому я направлялся вниз. Мое предположение было то, что это была структура MVC который устанавливает на HtmlHelper на странице, чтобы не проходить через контроллер, а попадал в ASPX, чтобы обойти этот шаг. Однако между тем, сотрудник просто сделал нашу страницу ASPX «тупой» (что, на мой взгляд, является хорошая вещь для всей страницы ошибок). – Trinition

+1

И, FWIW, моя главная страница делает это наследует от ViewMasterPage. – Trinition