diff --git a/src/Microsoft.AspNetCore.Mvc.Razor/RazorPageBase.cs b/src/Microsoft.AspNetCore.Mvc.Razor/RazorPageBase.cs
index ab8818d0d4..4fa1772250 100644
--- a/src/Microsoft.AspNetCore.Mvc.Razor/RazorPageBase.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Razor/RazorPageBase.cs
@@ -413,6 +413,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor
/// The to write.
public virtual void WriteLiteral(object value)
{
+ if (value == null)
+ {
+ return;
+ }
+
WriteLiteral(value.ToString());
}
diff --git a/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorPageTest.cs b/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorPageTest.cs
index feb192e21b..0484a805eb 100644
--- a/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorPageTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Razor.Test/RazorPageTest.cs
@@ -1463,6 +1463,21 @@ namespace Microsoft.AspNetCore.Mvc.Razor
Assert.Same(defaultWriter, page.ViewContext.Writer);
}
+ [Fact]
+ public void WriteLiteral_NullValue_DoesNothing()
+ {
+ // Arrange
+ var page = CreatePage(p => { });
+ var defaultWriter = new StringWriter();
+ page.ViewContext.Writer = defaultWriter;
+
+ // Act
+ page.WriteLiteral((object)null);
+
+ // Assert - does not throw
+ Assert.Empty(defaultWriter.ToString());
+ }
+
[Fact]
public void WriteLiteral_BuffersResultToPushedWriter()
{