[Fixes #2788] Added a sample taghelper that handles IE conditional comments

This commit is contained in:
Ajay Bhargav Baaskaran 2015-08-19 17:46:52 -07:00
parent 6d365e9a32
commit 774219b2ef
4 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,15 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.AspNet.Mvc;
namespace TagHelperSample.Web.Controllers
{
public class TagHelperController : Controller
{
public IActionResult ConditionalComment()
{
return View();
}
}
}

View File

@ -0,0 +1,12 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace TagHelperSample.Web
{
public enum CommentMode
{
DownlevelHidden = 0,
DownlevelRevealed = 1
}
}

View File

@ -0,0 +1,37 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
namespace TagHelperSample.Web
{
[TargetElement("iecondition")]
public class ConditionalCommentTagHelper : TagHelper
{
public CommentMode Mode { get; set; }
public string Condition { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = null;
var modeModifier = string.Empty;
if (Mode == CommentMode.DownlevelHidden)
{
modeModifier = "--";
}
output.PreContent.Append("<!");
output.PreContent.Append(modeModifier);
output.PreContent.Append("[if ");
output.PreContent.Append(Condition);
output.PreContent.Append("]>");
output.PostContent.Append("<![endif]");
output.PostContent.Append(modeModifier);
output.PostContent.Append(">");
}
}
}

View File

@ -0,0 +1,9 @@
@using TagHelperSample.Web
@addTagHelper "*, TagHelperSample.Web"
<iecondition mode="@CommentMode.DownlevelRevealed" condition="gt IE 7">
<p>Content visible to all browsers newer than Internet Explorer 7.</p>
</iecondition>
<iecondition mode="@CommentMode.DownlevelHidden" condition="IE 7">
<p>Content visible only to Internet Explorer 7 users.</p>
</iecondition>