diff --git a/src/Microsoft.AspNet.Mvc.ViewFeatures/Rendering/TagBuilder.cs b/src/Microsoft.AspNet.Mvc.ViewFeatures/Rendering/TagBuilder.cs
index 1acfeb3b91..70c44c88ea 100644
--- a/src/Microsoft.AspNet.Mvc.ViewFeatures/Rendering/TagBuilder.cs
+++ b/src/Microsoft.AspNet.Mvc.ViewFeatures/Rendering/TagBuilder.cs
@@ -206,7 +206,10 @@ namespace Microsoft.AspNet.Mvc.Rendering
writer.Write(" ");
writer.Write(key);
writer.Write("=\"");
- encoder.Encode(writer, attribute.Value);
+ if (!string.IsNullOrEmpty(attribute.Value))
+ {
+ encoder.Encode(writer, attribute.Value);
+ }
writer.Write("\"");
}
}
diff --git a/src/Microsoft.AspNet.Mvc.ViewFeatures/ViewFeatures/StringHtmlContent.cs b/src/Microsoft.AspNet.Mvc.ViewFeatures/ViewFeatures/StringHtmlContent.cs
index bdbc8b8ef5..282c3b72a4 100644
--- a/src/Microsoft.AspNet.Mvc.ViewFeatures/ViewFeatures/StringHtmlContent.cs
+++ b/src/Microsoft.AspNet.Mvc.ViewFeatures/ViewFeatures/StringHtmlContent.cs
@@ -39,7 +39,10 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
throw new ArgumentNullException(nameof(encoder));
}
- encoder.Encode(writer, _input);
+ if (!string.IsNullOrEmpty(_input))
+ {
+ encoder.Encode(writer, _input);
+ }
}
private string DebuggerToString()
diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/compiler/resources/HtmlGenerationWebSite.HtmlGeneration_Home.Script.Encoded.html b/test/Microsoft.AspNet.Mvc.FunctionalTests/compiler/resources/HtmlGenerationWebSite.HtmlGeneration_Home.Script.Encoded.html
index 433539425e..45c084fe91 100644
--- a/test/Microsoft.AspNet.Mvc.FunctionalTests/compiler/resources/HtmlGenerationWebSite.HtmlGeneration_Home.Script.Encoded.html
+++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/compiler/resources/HtmlGenerationWebSite.HtmlGeneration_Home.Script.Encoded.html
@@ -1,4 +1,4 @@
-
+
@@ -62,10 +62,10 @@
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
-
+ HtmlEncode[[]]
\ No newline at end of file
diff --git a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/FormTagHelperTest.cs b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/FormTagHelperTest.cs
index 3ba828875e..99b35c55af 100644
--- a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/FormTagHelperTest.cs
+++ b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/FormTagHelperTest.cs
@@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Text.Encodings.Web;
using System.Threading.Tasks;
using Microsoft.AspNet.Http.Internal;
using Microsoft.AspNet.Mvc.Abstractions;
@@ -16,7 +17,6 @@ using Microsoft.AspNet.Mvc.ViewEngines;
using Microsoft.AspNet.Mvc.ViewFeatures;
using Microsoft.AspNet.Razor.TagHelpers;
using Microsoft.AspNet.Routing;
-using Microsoft.Extensions.WebEncoders.Testing;
using Moq;
using Xunit;
@@ -60,13 +60,14 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
.Setup(mock => mock.Action(It.IsAny())).Returns("home/index");
var htmlGenerator = new TestableHtmlGenerator(metadataProvider, urlHelper.Object);
- var viewContext = TestableHtmlGenerator.GetViewContext(model: null,
- htmlGenerator: htmlGenerator,
- metadataProvider: metadataProvider);
+ var viewContext = TestableHtmlGenerator.GetViewContext(
+ model: null,
+ htmlGenerator: htmlGenerator,
+ metadataProvider: metadataProvider);
var expectedPostContent = "Something" +
HtmlContentUtilities.HtmlContentToString(
htmlGenerator.GenerateAntiforgery(viewContext),
- new HtmlTestEncoder());
+ HtmlEncoder.Default);
var formTagHelper = new FormTagHelper(htmlGenerator)
{
Action = "index",
diff --git a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/SelectTagHelperTest.cs b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/SelectTagHelperTest.cs
index 3716847e44..def8206c70 100644
--- a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/SelectTagHelperTest.cs
+++ b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/SelectTagHelperTest.cs
@@ -45,15 +45,15 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
modelWithNull,
modelWithText,
};
- var noneSelected = "" + Environment.NewLine +
+ var noneSelected = "" + Environment.NewLine +
"" + Environment.NewLine +
"" + Environment.NewLine +
"" + Environment.NewLine;
- var innerSelected = "" + Environment.NewLine +
+ var innerSelected = "" + Environment.NewLine +
"" + Environment.NewLine +
"" + Environment.NewLine +
"" + Environment.NewLine;
- var outerSelected = "" + Environment.NewLine +
+ var outerSelected = "" + Environment.NewLine +
"" + Environment.NewLine +
"" + Environment.NewLine +
"" + Environment.NewLine;
diff --git a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/TextAreaTagHelperTest.cs b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/TextAreaTagHelperTest.cs
index 01a7ff2170..dcda8e8459 100644
--- a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/TextAreaTagHelperTest.cs
+++ b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/TextAreaTagHelperTest.cs
@@ -48,32 +48,35 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
{
{ null, typeof(Model), null,
new NameAndId("Text", "Text"),
- Environment.NewLine },
+ Environment.NewLine + "HtmlEncode[[]]" },
{ modelWithNull, typeof(Model), modelWithNull.Text,
new NameAndId("Text", "Text"),
- Environment.NewLine },
+ Environment.NewLine + "HtmlEncode[[]]"},
{ modelWithText, typeof(Model), modelWithText.Text,
new NameAndId("Text", "Text"),
Environment.NewLine + "HtmlEncode[[outer text]]" },
{ modelWithNull, typeof(NestedModel), modelWithNull.NestedModel.Text,
new NameAndId("NestedModel.Text", "NestedModel_Text"),
- Environment.NewLine },
+ Environment.NewLine + "HtmlEncode[[]]" },
+
{ modelWithText, typeof(NestedModel), modelWithText.NestedModel.Text,
new NameAndId("NestedModel.Text", "NestedModel_Text"),
Environment.NewLine + "HtmlEncode[[inner text]]" },
{ models, typeof(Model), models[0].Text,
new NameAndId("[0].Text", "z0__Text"),
- Environment.NewLine },
+ Environment.NewLine + "HtmlEncode[[]]" },
+
{ models, typeof(Model), models[1].Text,
new NameAndId("[1].Text", "z1__Text"),
Environment.NewLine + "HtmlEncode[[outer text]]" },
{ models, typeof(NestedModel), models[0].NestedModel.Text,
new NameAndId("[0].NestedModel.Text", "z0__NestedModel_Text"),
- Environment.NewLine },
+ Environment.NewLine + "HtmlEncode[[]]" },
+
{ models, typeof(NestedModel), models[1].NestedModel.Text,
new NameAndId("[1].NestedModel.Text", "z1__NestedModel_Text"),
Environment.NewLine + "HtmlEncode[[inner text]]" },
diff --git a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/ValidationMessageTagHelperTest.cs b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/ValidationMessageTagHelperTest.cs
index 2762cbe930..a65f766c47 100644
--- a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/ValidationMessageTagHelperTest.cs
+++ b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/ValidationMessageTagHelperTest.cs
@@ -63,9 +63,10 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
output.Content.SetContent(expectedContent);
output.PostContent.SetContent(expectedPostContent);
- var viewContext = TestableHtmlGenerator.GetViewContext(model: null,
- htmlGenerator: htmlGenerator,
- metadataProvider: metadataProvider);
+ var viewContext = TestableHtmlGenerator.GetViewContext(
+ model: null,
+ htmlGenerator: htmlGenerator,
+ metadataProvider: metadataProvider);
validationMessageTagHelper.ViewContext = viewContext;
// Act