Skip to content
This repository was archived by the owner on Dec 19, 2018. It is now read-only.

Commit aedb05e

Browse files
committed
Merge branch 'release/2.2'
2 parents 52304f7 + 684e785 commit aedb05e

File tree

2 files changed

+16
-30
lines changed

2 files changed

+16
-30
lines changed

src/Microsoft.AspNetCore.Razor/TagHelpers/DefaultTagHelperContent.cs

+14-29
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,7 @@ private void WriteToCore(object entry, TextWriter writer, HtmlEncoder encoder)
221221
return;
222222
}
223223

224-
var stringValue = entry as string;
225-
if (stringValue != null)
224+
if (entry is string stringValue)
226225
{
227226
encoder.Encode(writer, stringValue);
228227
}
@@ -239,13 +238,11 @@ private void CopyToCore(object entry, IHtmlContentBuilder destination)
239238
return;
240239
}
241240

242-
string entryAsString;
243-
IHtmlContentContainer entryAsContainer;
244-
if ((entryAsString = entry as string) != null)
241+
if (entry is string entryAsString)
245242
{
246243
destination.Append(entryAsString);
247244
}
248-
else if ((entryAsContainer = entry as IHtmlContentContainer) != null)
245+
else if (entry is IHtmlContentContainer entryAsContainer)
249246
{
250247
entryAsContainer.CopyTo(destination);
251248
}
@@ -262,13 +259,11 @@ private void MoveToCore(object entry, IHtmlContentBuilder destination)
262259
return;
263260
}
264261

265-
string entryAsString;
266-
IHtmlContentContainer entryAsContainer;
267-
if ((entryAsString = entry as string) != null)
262+
if (entry is string entryAsString)
268263
{
269264
destination.Append(entryAsString);
270265
}
271-
else if ((entryAsContainer = entry as IHtmlContentContainer) != null)
266+
else if (entry is IHtmlContentContainer entryAsContainer)
272267
{
273268
entryAsContainer.MoveTo(destination);
274269
}
@@ -282,29 +277,19 @@ private bool IsEmptyOrWhiteSpaceCore(object entry, EmptyOrWhiteSpaceWriter write
282277
{
283278
if (entry == null)
284279
{
285-
return false;
280+
return true;
286281
}
287282

288-
var stringValue = entry as string;
289-
if (stringValue != null)
283+
if (entry is string stringValue)
290284
{
291285
// Do not encode the string because encoded value remains whitespace from user's POV.
292-
if (!string.IsNullOrWhiteSpace(stringValue))
293-
{
294-
return false;
295-
}
296-
}
297-
else
298-
{
299-
// Use NullHtmlEncoder to avoid treating encoded whitespace as non-whitespace e.g. "\t" as "	".
300-
((IHtmlContent)entry).WriteTo(writer, NullHtmlEncoder.Default);
301-
if (!writer.IsEmptyOrWhiteSpace)
302-
{
303-
return false;
304-
}
286+
return string.IsNullOrWhiteSpace(stringValue);
305287
}
306288

307-
return true;
289+
// Use NullHtmlEncoder to avoid treating encoded whitespace as non-whitespace e.g. "\t" as "	".
290+
((IHtmlContent)entry).WriteTo(writer, NullHtmlEncoder.Default);
291+
292+
return writer.IsEmptyOrWhiteSpace;
308293
}
309294

310295
private TagHelperContent AppendCore(object entry)
@@ -329,7 +314,7 @@ private string DebuggerToString()
329314
{
330315
return GetContent();
331316
}
332-
317+
333318
// Overrides Write(string) to find if the content written is empty/whitespace.
334319
private class EmptyOrWhiteSpaceWriter : TextWriter
335320
{
@@ -360,4 +345,4 @@ public override void Write(string value)
360345
}
361346
}
362347
}
363-
}
348+
}

test/Microsoft.AspNetCore.Razor.Test/TagHelpers/DefaultTagHelperContentTest.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ public static TheoryData<string> EmptyOrWhiteSpaceData
363363
{
364364
return new TheoryData<string>
365365
{
366+
null,
366367
string.Empty,
367368
" ",
368369
"\n",
@@ -838,4 +839,4 @@ public void WriteTo(TextWriter writer, HtmlEncoder encoder)
838839
}
839840
}
840841
}
841-
}
842+
}

0 commit comments

Comments
 (0)