React to removal of TagHelperContent.ToString()
Avoid calling ToString on a TagHelperContent. Also react to new properties on TagHelperCodeGenerationContext
This commit is contained in:
parent
d8d0a1ab89
commit
80add92de8
|
|
@ -102,6 +102,9 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
// Can't use nameof because IHtmlHelper is (also) not accessible here.
|
// Can't use nameof because IHtmlHelper is (also) not accessible here.
|
||||||
MarkAsHtmlEncodedMethodName = HtmlHelperPropertyName + ".Raw",
|
MarkAsHtmlEncodedMethodName = HtmlHelperPropertyName + ".Raw",
|
||||||
|
AddHtmlAttributeValuesMethodName = "AddHtmlAttributeValues",
|
||||||
|
HtmlEncoderPropertyName = "HtmlEncoder",
|
||||||
|
TagHelperContentGetContentMethodName = nameof(TagHelperContent.GetContent),
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
BeginContextMethodName = "BeginContext",
|
BeginContextMethodName = "BeginContext",
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
v.Write("Hello from Output");
|
v.Write("Hello from Output");
|
||||||
v.ViewContext.Writer.Write("Hello from view context writer");
|
v.ViewContext.Writer.Write("Hello from view context writer");
|
||||||
var scopeValue = v.EndTagHelperWritingScope();
|
var scopeValue = v.EndTagHelperWritingScope();
|
||||||
v.Write("From Scope: " + scopeValue.ToString());
|
v.Write("From Scope: ");
|
||||||
|
v.Write(scopeValue);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -47,8 +48,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var pageOutput = page.Output.ToString();
|
var pageOutput = page.Output.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scope: HtmlEncode[[Hello from Output]]" +
|
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scope: ]]HtmlEncode[[Hello from Output]]" +
|
||||||
"Hello from view context writer]]", pageOutput);
|
"Hello from view context writer", pageOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -63,7 +64,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello In Scope");
|
v.Write("Hello In Scope");
|
||||||
var scopeValue = v.EndTagHelperWritingScope();
|
var scopeValue = v.EndTagHelperWritingScope();
|
||||||
v.Write("From Scope: " + scopeValue.ToString());
|
v.Write("From Scope: ");
|
||||||
|
v.Write(scopeValue);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -71,7 +73,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var pageOutput = page.Output.ToString();
|
var pageOutput = page.Output.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scope: HtmlEncode[[Hello In Scope]]]]", pageOutput);
|
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scope: ]]HtmlEncode[[Hello In Scope]]", pageOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -93,7 +95,9 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
v.Write("Hello In Scope Post Nest");
|
v.Write("Hello In Scope Post Nest");
|
||||||
var scopeValue2 = v.EndTagHelperWritingScope();
|
var scopeValue2 = v.EndTagHelperWritingScope();
|
||||||
|
|
||||||
v.Write("From Scopes: " + scopeValue2.ToString() + scopeValue1.ToString());
|
v.Write("From Scopes: ");
|
||||||
|
v.Write(scopeValue2);
|
||||||
|
v.Write(scopeValue1);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -101,8 +105,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var pageOutput = page.Output.ToString();
|
var pageOutput = page.Output.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scopes: HtmlEncode[[Hello In Scope Pre Nest]]" +
|
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scopes: ]]HtmlEncode[[Hello In Scope Pre Nest]]" +
|
||||||
"HtmlEncode[[Hello In Scope Post Nest]]HtmlEncode[[Hello In Nested Scope]]]]", pageOutput);
|
"HtmlEncode[[Hello In Scope Post Nest]]HtmlEncode[[Hello In Nested Scope]]", pageOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
|
||||||
|
|
@ -2,24 +2,27 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Mvc;
|
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
|
using Microsoft.Framework.WebEncoders;
|
||||||
|
|
||||||
namespace ActivatorWebSite.TagHelpers
|
namespace ActivatorWebSite.TagHelpers
|
||||||
{
|
{
|
||||||
[HtmlTargetElement("span")]
|
[HtmlTargetElement("span")]
|
||||||
public class HiddenTagHelper : TagHelper
|
public class HiddenTagHelper : TagHelper
|
||||||
{
|
{
|
||||||
public HiddenTagHelper(IHtmlHelper htmlHelper)
|
public HiddenTagHelper(IHtmlHelper htmlHelper, IHtmlEncoder htmlEncoder)
|
||||||
{
|
{
|
||||||
HtmlHelper = htmlHelper;
|
HtmlHelper = htmlHelper;
|
||||||
|
HtmlEncoder = htmlEncoder;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IHtmlHelper HtmlHelper { get; }
|
public IHtmlHelper HtmlHelper { get; }
|
||||||
|
|
||||||
|
public IHtmlEncoder HtmlEncoder { get; }
|
||||||
|
|
||||||
[HtmlAttributeNotBound]
|
[HtmlAttributeNotBound]
|
||||||
[ViewContext]
|
[ViewContext]
|
||||||
public ViewContext ViewContext { get; set; }
|
public ViewContext ViewContext { get; set; }
|
||||||
|
|
@ -31,8 +34,7 @@ namespace ActivatorWebSite.TagHelpers
|
||||||
(HtmlHelper as ICanHasViewContext)?.Contextualize(ViewContext);
|
(HtmlHelper as ICanHasViewContext)?.Contextualize(ViewContext);
|
||||||
|
|
||||||
var content = await context.GetChildContentAsync();
|
var content = await context.GetChildContentAsync();
|
||||||
|
output.Content.SetContent(HtmlHelper.Hidden(Name, content.GetContent(HtmlEncoder)));
|
||||||
output.Content.SetContent(HtmlHelper.Hidden(Name, content));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue