Add properties to the body node that it needs

Removes a usage of TagRenderingContext
This commit is contained in:
Ryan Nowak 2017-07-03 11:09:53 -07:00
parent ddef61485b
commit 35889cba81
7 changed files with 21 additions and 20 deletions

View File

@ -205,11 +205,7 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
public override void VisitTagHelper(TagHelperIntermediateNode node) public override void VisitTagHelper(TagHelperIntermediateNode node)
{ {
var tagHelperRenderingContext = new TagHelperRenderingContext() var tagHelperRenderingContext = new TagHelperRenderingContext();
{
TagName = node.TagName,
TagMode = node.TagMode
};
using (Context.Push(tagHelperRenderingContext)) using (Context.Push(tagHelperRenderingContext))
{ {

View File

@ -11,10 +11,6 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
private Dictionary<string, string> _renderedBoundAttributes; private Dictionary<string, string> _renderedBoundAttributes;
private HashSet<string> _verifiedPropertyDictionaries; private HashSet<string> _verifiedPropertyDictionaries;
public string TagName { get; set; }
public TagMode TagMode { get; set; }
public Dictionary<string, string> RenderedBoundAttributes public Dictionary<string, string> RenderedBoundAttributes
{ {
get get

View File

@ -9,8 +9,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
{ {
public sealed class DefaultTagHelperBodyIntermediateNode : ExtensionIntermediateNode public sealed class DefaultTagHelperBodyIntermediateNode : ExtensionIntermediateNode
{ {
public override IntermediateNodeCollection Children { get; } = new DefaultIntermediateNodeCollection();
public DefaultTagHelperBodyIntermediateNode() public DefaultTagHelperBodyIntermediateNode()
{ {
} }
@ -35,6 +33,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
} }
} }
public override IntermediateNodeCollection Children { get; } = new DefaultIntermediateNodeCollection();
public TagMode TagMode { get; set; }
public string TagName { get; set; }
public override void Accept(IntermediateNodeVisitor visitor) public override void Accept(IntermediateNodeVisitor visitor)
{ {
if (visitor == null) if (visitor == null)

View File

@ -88,7 +88,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
if (node.Children[i] is TagHelperBodyIntermediateNode bodyNode) if (node.Children[i] is TagHelperBodyIntermediateNode bodyNode)
{ {
// We only expect one body node. // We only expect one body node.
node.Children[i] = new DefaultTagHelperBodyIntermediateNode(bodyNode); node.Children[i] = new DefaultTagHelperBodyIntermediateNode(bodyNode)
{
TagMode = node.TagMode,
TagName = node.TagName,
};
break; break;
} }
} }

View File

@ -97,11 +97,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
uniqueId = Guid.NewGuid().ToString("N"); uniqueId = Guid.NewGuid().ToString("N");
} }
context.CodeWriter.WriteStringLiteral(context.TagHelperRenderingContext.TagName) context.CodeWriter.WriteStringLiteral(node.TagName)
.WriteParameterSeparator() .WriteParameterSeparator()
.Write(TagModeTypeName) .Write(TagModeTypeName)
.Write(".") .Write(".")
.Write(context.TagHelperRenderingContext.TagMode.ToString()) .Write(node.TagMode.ToString())
.WriteParameterSeparator() .WriteParameterSeparator()
.WriteStringLiteral(uniqueId) .WriteStringLiteral(uniqueId)
.WriteParameterSeparator(); .WriteParameterSeparator();

View File

@ -11,10 +11,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
{ {
public override IntermediateNodeCollection Children { get; } = new DefaultIntermediateNodeCollection(); public override IntermediateNodeCollection Children { get; } = new DefaultIntermediateNodeCollection();
public TagMode TagMode { get; set; }
public string TagName { get; set; } public string TagName { get; set; }
public TagMode TagMode { get; set; }
public ICollection<TagHelperDescriptor> TagHelpers { get; } = new List<TagHelperDescriptor>(); public ICollection<TagHelperDescriptor> TagHelpers { get; } = new List<TagHelperDescriptor>();
public TagHelperBodyIntermediateNode Body => Children.OfType<TagHelperBodyIntermediateNode>().SingleOrDefault(); public TagHelperBodyIntermediateNode Body => Children.OfType<TagHelperBodyIntermediateNode>().SingleOrDefault();

View File

@ -92,10 +92,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
var extension = new DefaultTagHelperTargetExtension(); var extension = new DefaultTagHelperTargetExtension();
var context = GetRuntimeCodeRenderingContext(); var context = GetRuntimeCodeRenderingContext();
context.TagHelperRenderingContext.TagMode = TagMode.SelfClosing; var node = new DefaultTagHelperBodyIntermediateNode()
context.TagHelperRenderingContext.TagName = "p"; {
TagMode = TagMode.SelfClosing,
var node = new DefaultTagHelperBodyIntermediateNode(); TagName = "p",
};
// Act // Act
extension.WriteTagHelperBody(context, node); extension.WriteTagHelperBody(context, node);