Modifying DefineSection to generate HelperResult types
This commit is contained in:
parent
3ce198249d
commit
9c4a6e901d
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
);
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,11 +102,11 @@ namespace TestOutput
|
|||
#line hidden
|
||||
|
||||
WriteLiteral("\r\n\r\n");
|
||||
DefineSection("Foo", () => {
|
||||
WriteLiteral("\r\n <a");
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 500), Tuple.Create("\"", 512), Tuple.Create(Tuple.Create("", 507), Tuple.Create<System.Object, System.Int32>(Href("~/Foo"), 507), false));
|
||||
WriteLiteral(">Foo</a>\r\n <a");
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 529), Tuple.Create("\"", 558), Tuple.Create(Tuple.Create("", 536), Tuple.Create<System.Object, System.Int32>(Href("~/Products/"), 536), false),
|
||||
DefineSection("Foo", new Template((__razor_template_writer) => {
|
||||
WriteLiteralTo(__razor_template_writer, "\r\n <a");
|
||||
WriteAttributeTo(__razor_template_writer, "href", Tuple.Create(" href=\"", 500), Tuple.Create("\"", 512), Tuple.Create(Tuple.Create("", 507), Tuple.Create<System.Object, System.Int32>(Href("~/Foo"), 507), false));
|
||||
WriteLiteralTo(__razor_template_writer, ">Foo</a>\r\n <a");
|
||||
WriteAttributeTo(__razor_template_writer, "href", Tuple.Create(" href=\"", 529), Tuple.Create("\"", 558), Tuple.Create(Tuple.Create("", 536), Tuple.Create<System.Object, System.Int32>(Href("~/Products/"), 536), false),
|
||||
Tuple.Create(Tuple.Create("", 547), Tuple.Create<System.Object, System.Int32>(
|
||||
#line 17 "ResolveUrl.cshtml"
|
||||
product.id
|
||||
|
|
@ -114,8 +114,8 @@ namespace TestOutput
|
|||
#line default
|
||||
#line hidden
|
||||
, 547), false));
|
||||
WriteLiteral(">");
|
||||
Write(
|
||||
WriteLiteralTo(__razor_template_writer, ">");
|
||||
WriteTo(__razor_template_writer,
|
||||
#line 17 "ResolveUrl.cshtml"
|
||||
product.Name
|
||||
|
||||
|
|
@ -123,8 +123,8 @@ namespace TestOutput
|
|||
#line hidden
|
||||
);
|
||||
|
||||
WriteLiteral("</a>\r\n <a");
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 585), Tuple.Create("\"", 621), Tuple.Create(Tuple.Create("", 592), Tuple.Create<System.Object, System.Int32>(Href("~/Products/"), 592), false),
|
||||
WriteLiteralTo(__razor_template_writer, "</a>\r\n <a");
|
||||
WriteAttributeTo(__razor_template_writer, "href", Tuple.Create(" href=\"", 585), Tuple.Create("\"", 621), Tuple.Create(Tuple.Create("", 592), Tuple.Create<System.Object, System.Int32>(Href("~/Products/"), 592), false),
|
||||
Tuple.Create(Tuple.Create("", 603), Tuple.Create<System.Object, System.Int32>(
|
||||
#line 18 "ResolveUrl.cshtml"
|
||||
product.id
|
||||
|
|
@ -132,8 +132,8 @@ namespace TestOutput
|
|||
#line default
|
||||
#line hidden
|
||||
, 603), false), Tuple.Create(Tuple.Create("", 614), Tuple.Create("/Detail", 614), true));
|
||||
WriteLiteral(">Details</a>\r\n <a");
|
||||
WriteAttribute("href", Tuple.Create(" href=\"", 642), Tuple.Create("\"", 697), Tuple.Create(Tuple.Create("", 649), Tuple.Create<System.Object, System.Int32>(Href("~/A+Really(Crazy),Url.Is:This/"), 649), false),
|
||||
WriteLiteralTo(__razor_template_writer, ">Details</a>\r\n <a");
|
||||
WriteAttributeTo(__razor_template_writer, "href", Tuple.Create(" href=\"", 642), Tuple.Create("\"", 697), Tuple.Create(Tuple.Create("", 649), Tuple.Create<System.Object, System.Int32>(Href("~/A+Really(Crazy),Url.Is:This/"), 649), false),
|
||||
Tuple.Create(Tuple.Create("", 679), Tuple.Create<System.Object, System.Int32>(
|
||||
#line 19 "ResolveUrl.cshtml"
|
||||
product.id
|
||||
|
|
@ -141,9 +141,9 @@ namespace TestOutput
|
|||
#line default
|
||||
#line hidden
|
||||
, 679), false), Tuple.Create(Tuple.Create("", 690), Tuple.Create("/Detail", 690), true));
|
||||
WriteLiteral(">Crazy Url!</a>\r\n");
|
||||
WriteLiteralTo(__razor_template_writer, ">Crazy Url!</a>\r\n");
|
||||
}
|
||||
);
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,15 +20,15 @@ namespace TestOutput
|
|||
#line hidden
|
||||
|
||||
WriteLiteral("\r\n\r\n<div>This is in the Body>\r\n\r\n");
|
||||
DefineSection("Section2", () => {
|
||||
WriteLiteral("\r\n <div>This is in Section 2</div>\r\n");
|
||||
DefineSection("Section2", new Template((__razor_template_writer) => {
|
||||
WriteLiteralTo(__razor_template_writer, "\r\n <div>This is in Section 2</div>\r\n");
|
||||
}
|
||||
);
|
||||
));
|
||||
WriteLiteral("\r\n");
|
||||
DefineSection("Section1", () => {
|
||||
WriteLiteral("\r\n <div>This is in Section 1</div>\r\n");
|
||||
DefineSection("Section1", new Template((__razor_template_writer) => {
|
||||
WriteLiteralTo(__razor_template_writer, "\r\n <div>This is in Section 1</div>\r\n");
|
||||
}
|
||||
);
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue