parent
cf6662d0c3
commit
774ee05508
|
|
@ -98,14 +98,14 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
}
|
}
|
||||||
|
|
||||||
_bufferScope = context.HttpContext.RequestServices.GetRequiredService<IRazorBufferScope>();
|
_bufferScope = context.HttpContext.RequestServices.GetRequiredService<IRazorBufferScope>();
|
||||||
var bodyWriter = await RenderPageAsync(RazorPage, context, ViewStartPages);
|
var bodyWriter = await RenderPageAsync(RazorPage, context, invokeViewStarts: true);
|
||||||
await RenderLayoutAsync(context, bodyWriter);
|
await RenderLayoutAsync(context, bodyWriter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<RazorTextWriter> RenderPageAsync(
|
private async Task<RazorTextWriter> RenderPageAsync(
|
||||||
IRazorPage page,
|
IRazorPage page,
|
||||||
ViewContext context,
|
ViewContext context,
|
||||||
IReadOnlyList<IRazorPage> viewStartPages)
|
bool invokeViewStarts)
|
||||||
{
|
{
|
||||||
Debug.Assert(_bufferScope != null);
|
Debug.Assert(_bufferScope != null);
|
||||||
var buffer = new RazorBuffer(_bufferScope, page.Path);
|
var buffer = new RazorBuffer(_bufferScope, page.Path);
|
||||||
|
|
@ -120,10 +120,10 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (viewStartPages != null)
|
if (invokeViewStarts)
|
||||||
{
|
{
|
||||||
// Execute view starts using the same context + writer as the page to render.
|
// Execute view starts using the same context + writer as the page to render.
|
||||||
await RenderViewStartsAsync(context, viewStartPages);
|
await RenderViewStartsAsync(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
await RenderPageCoreAsync(page, context);
|
await RenderPageCoreAsync(page, context);
|
||||||
|
|
@ -144,13 +144,13 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
return page.ExecuteAsync();
|
return page.ExecuteAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task RenderViewStartsAsync(ViewContext context, IReadOnlyList<IRazorPage> viewStartPages)
|
private async Task RenderViewStartsAsync(ViewContext context)
|
||||||
{
|
{
|
||||||
string layout = null;
|
string layout = null;
|
||||||
var oldFilePath = context.ExecutingFilePath;
|
var oldFilePath = context.ExecutingFilePath;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
for (var i = 0; i < viewStartPages.Count; i++)
|
for (var i = 0; i < ViewStartPages.Count; i++)
|
||||||
{
|
{
|
||||||
var viewStart = ViewStartPages[i];
|
var viewStart = ViewStartPages[i];
|
||||||
context.ExecutingFilePath = viewStart.Path;
|
context.ExecutingFilePath = viewStart.Path;
|
||||||
|
|
@ -211,7 +211,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
previousPage.IsLayoutBeingRendered = true;
|
previousPage.IsLayoutBeingRendered = true;
|
||||||
layoutPage.PreviousSectionWriters = previousPage.SectionWriters;
|
layoutPage.PreviousSectionWriters = previousPage.SectionWriters;
|
||||||
layoutPage.BodyContent = bodyWriter.Buffer;
|
layoutPage.BodyContent = bodyWriter.Buffer;
|
||||||
bodyWriter = await RenderPageAsync(layoutPage, context, viewStartPages: null);
|
bodyWriter = await RenderPageAsync(layoutPage, context, invokeViewStarts: false);
|
||||||
|
|
||||||
renderedLayouts.Add(layoutPage);
|
renderedLayouts.Add(layoutPage);
|
||||||
previousPage = layoutPage;
|
previousPage = layoutPage;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue