diff --git a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs
index 6e4748ebca..330f8e7834 100644
--- a/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs
+++ b/src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs
@@ -272,13 +272,19 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
{
Writer.WriteStartMethodInvocation(Context.Host.GeneratedClassContext.DefineSectionMethodName)
.WriteStringLiteral(chunk.Name)
- .WriteParameterSeparator();
+ .WriteParameterSeparator()
+ .WriteStartNewObject(Context.Host.GeneratedClassContext.TemplateTypeName);
- using (Writer.BuildLambda(false))
+ var currentTargetWriterName = Context.TargetWriterName;
+ Context.TargetWriterName = TemplateWriterName;
+
+ using (Writer.BuildLambda(endLine: false, parameterNames: TemplateWriterName))
{
Accept(chunk.Children);
}
-
+ Context.TargetWriterName = currentTargetWriterName;
+
+ Writer.WriteEndMethodInvocation(endLine: false);
Writer.WriteEndMethodInvocation();
}
diff --git a/test/Microsoft.AspNet.Razor.Test/Generator/CSharpRazorCodeGeneratorTest.cs b/test/Microsoft.AspNet.Razor.Test/Generator/CSharpRazorCodeGeneratorTest.cs
index 3b665ecc41..a129bfe43f 100644
--- a/test/Microsoft.AspNet.Razor.Test/Generator/CSharpRazorCodeGeneratorTest.cs
+++ b/test/Microsoft.AspNet.Razor.Test/Generator/CSharpRazorCodeGeneratorTest.cs
@@ -295,7 +295,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(129, 8, 1, 1380, 75, 6, 4),
BuildLineMapping(142, 8, 1505, 77, 14, 3),
BuildLineMapping(153, 8, 1602, 84, 25, 1),
- BuildLineMapping(204, 13, 5, 1775, 94, 6, 3)
+ BuildLineMapping(204, 13, 5, 1811, 94, 6, 3)
});
}
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DesignTime.cs
index 1ecf5ac918..d9e070e00a 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/DesignTime.cs
@@ -90,14 +90,14 @@ __o = Foo(item => new Template((__razor_template_writer) => {
#line default
#line hidden
- DefineSection("Footer", () => {
+ DefineSection("Footer", new Template((__razor_template_writer) => {
#line 1 "------------------------------------------"
__o = bar;
#line default
#line hidden
}
- );
+ ));
}
}
}
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs
index 9fd1870745..a4eba779af 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/ResolveUrl.cs
@@ -102,11 +102,11 @@ namespace TestOutput
#line hidden
WriteLiteral("\r\n\r\n");
- DefineSection("Foo", () => {
- WriteLiteral("\r\n (Href("~/Foo"), 507), false));
- WriteLiteral(">Foo\r\n (Href("~/Products/"), 536), false),
+ DefineSection("Foo", new Template((__razor_template_writer) => {
+ WriteLiteralTo(__razor_template_writer, "\r\n (Href("~/Foo"), 507), false));
+ WriteLiteralTo(__razor_template_writer, ">Foo\r\n (Href("~/Products/"), 536), false),
Tuple.Create(Tuple.Create("", 547), Tuple.Create