protected ActionResult GetPage(int publicationId, int pageId) { using (new Tracer(publicationId, pageId)) { try { Common.Configuration.Localization localization = SetupLocalization(publicationId); PageModel pageModel; try { pageModel = ContentProviderExt.GetPageModel(pageId, localization); } catch (DxaItemNotFoundException ex) { Log.Info(ex.Message); return(NotFound()); } PageModelWithHttpResponseData pageModelWithHttpResponseData = pageModel as PageModelWithHttpResponseData; pageModelWithHttpResponseData?.SetHttpResponseData(System.Web.HttpContext.Current.Response); SetupViewData(pageModel); PageModel model = (EnrichModel(pageModel) as PageModel) ?? pageModel; WebRequestContext.PageModel = model; return(View(model.MvcData.ViewName, model)); } catch (Exception ex) { Log.Error(ex); return(ServerError()); } } }
[FormatData] // must come first in execution order before output cache public virtual ActionResult Page(string pageUrl) { // The pageUrl parameter provided by ASP.NET MVC is relative to the Web App, but we need a server-relative (i.e. absolute) URL path. string absoluteUrlPath = Request.Url.AbsolutePath; using (new Tracer(pageUrl, absoluteUrlPath)) { try { bool addIncludes = true; object addIncludesViewData; if (ViewData.TryGetValue(DxaViewDataItems.AddIncludes, out addIncludesViewData)) { addIncludes = (bool)addIncludesViewData; } PageModel pageModel; try { pageModel = ContentProvider.GetPageModel(absoluteUrlPath, WebRequestContext.Localization, addIncludes); } catch (DxaItemNotFoundException ex) { Log.Info(ex.Message); return(NotFound()); } PageModelWithHttpResponseData pageModelWithHttpResponseData = pageModel as PageModelWithHttpResponseData; if (pageModelWithHttpResponseData != null) { pageModelWithHttpResponseData.SetHttpResponseData(System.Web.HttpContext.Current.Response); } SetupViewData(pageModel); PageModel model = (EnrichModel(pageModel) as PageModel) ?? pageModel; WebRequestContext.PageModel = model; MvcData mvcData = model.MvcData; if (mvcData == null) { throw new DxaException($"Page Model [{model}] has no MVC data."); } Log.Debug("Page Request for URL path '{0}' maps to Model [{1}] with View '{2}'", absoluteUrlPath, model, mvcData.ViewName); return(View(mvcData.ViewName, model)); } catch (Exception ex) { Log.Error(ex); return(ServerError()); } } }