From 5662717983d6aa9675201ee99d26ed1718dfadad Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Mon, 15 May 2017 15:08:07 -0700 Subject: [PATCH] Add null check in WriteLiteral --- .../RazorPageBase.cs | 5 +++++ .../RazorPageTest.cs | 15 +++++++++++++++ 2 files changed, 20 insertions(+) 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() {