Add properties to the body node that it needs
Removes a usage of TagRenderingContext
This commit is contained in:
parent
ddef61485b
commit
35889cba81
|
|
@ -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))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue