У нас Kentico 11.0.26 с MVC
У нас есть тип страницы нижнего колонтитула для широкого нижнего колонтитула сайта.Поля базы данных для этого типа страниц загружаются через базовый контроллер в приложении MVC.Не уверен, почему я получаю исключение нулевой ссылки в сгенерированном Kentico-коде, в этой строке (строка 68 в трассировке стека ниже)
/// <summary>
/// Returns a published page of type Footer that matches the specified criteria.
/// </summary>
/// <param name="nodeAliasPath">The alias path to the content tree node that represents the page.</param>
/// <param name="siteName">The name of the site where the page belongs.</param>
/// <param name="cultureName">The name of the language, e.g. en-US, that determines which localized version should be retrieved.</param>
public static DocumentQuery<Footer> GetFooter(string nodeAliasPath, string cultureName, string siteName)
{
return GetFooters().OnSite(siteName).Culture(cultureName).Path(nodeAliasPath);
}
Вызов GetFooter
в BaseController
выглядит следующим образом (строка 47 в трассировке стека ниже):
Footer footer = FooterProvider.GetFooter("/Footer", "en-us", SiteContext.CurrentSiteName)
.Columns("DocumentName", "PhysicalHeading", "PhysicalAddress", "MailingHeading", "MailingAddress", "PhoneHeading", "PhoneNumbers", "LogoImage", "Link1Text", "Link1URL", "FacebookURL", "TwitterURL", "InstagramURL", "YouTubeURL", "LinkedInURL");
Это полная трассировка стека:
Ошибка сервера в приложении '/'.
Ссылка на объект не установлена для экземпляра объекта.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
Ошибка источника: необработанное исключение было сгенерировано во время выполнения текущего веб-запроса.Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью трассировки стека исключений ниже.
Stack Trace:
[NullReferenceException: ссылка на объект не установлена для экземпляра объекта.] CMS.DocumentEngine.DocumentQueryBase 2.OnSite(SiteInfoIdentifier siteIdentifier, Boolean includeGlobal) +13
CMS.DocumentEngine.Types.LIT.FooterProvider.GetFooter(String nodeAliasPath, String cultureName, String siteName) in C:\MyWebsite\PageTypes\FooterProvider.cs:68
MyWebsite.Controllers.BaseController.GetFooterModel() in C:\MyWebsite\Controllers\BaseController.cs:47
MyWebsite.Controllers.BaseController.OnActionExecuted(ActionExecutedContext filterContext) in C:\MyWebsite\Controllers\BaseController.cs:36
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +378
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +41
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +37
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +188
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +32
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate (IAsyncResult asyncResult) +73 System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) +52 System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +46
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate (IAsyncResult asyncResult) +73 System.Web.Mest.Sec.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +431 System.Web.HttpApplication.ExecuteStepImpl (шаг IExecutionStep) +75 System.Web.HttpApplication *ExecuteSyntete 151029 *
Информация о версии: Microsoft .NET Framework Версия: 4.0.30319;ASP.NET версия: 4.8.3928.0