From 774219b2ef6021923dabc931e2436c7150d09e29 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 19 Aug 2015 17:46:52 -0700 Subject: [PATCH] [Fixes #2788] Added a sample taghelper that handles IE conditional comments --- .../Controllers/TagHelperController.cs | 15 ++++++++ .../TagHelpers/CommentMode.cs | 12 ++++++ .../TagHelpers/ConditionalCommentTagHelper.cs | 37 +++++++++++++++++++ .../Views/TagHelper/ConditionalComment.cshtml | 9 +++++ 4 files changed, 73 insertions(+) create mode 100644 samples/TagHelperSample.Web/Controllers/TagHelperController.cs create mode 100644 samples/TagHelperSample.Web/TagHelpers/CommentMode.cs create mode 100644 samples/TagHelperSample.Web/TagHelpers/ConditionalCommentTagHelper.cs create mode 100644 samples/TagHelperSample.Web/Views/TagHelper/ConditionalComment.cshtml diff --git a/samples/TagHelperSample.Web/Controllers/TagHelperController.cs b/samples/TagHelperSample.Web/Controllers/TagHelperController.cs new file mode 100644 index 0000000000..7e5873bfdf --- /dev/null +++ b/samples/TagHelperSample.Web/Controllers/TagHelperController.cs @@ -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(); + } + } +} diff --git a/samples/TagHelperSample.Web/TagHelpers/CommentMode.cs b/samples/TagHelperSample.Web/TagHelpers/CommentMode.cs new file mode 100644 index 0000000000..f671d1a3c9 --- /dev/null +++ b/samples/TagHelperSample.Web/TagHelpers/CommentMode.cs @@ -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 + } +} diff --git a/samples/TagHelperSample.Web/TagHelpers/ConditionalCommentTagHelper.cs b/samples/TagHelperSample.Web/TagHelpers/ConditionalCommentTagHelper.cs new file mode 100644 index 0000000000..1021d21b9f --- /dev/null +++ b/samples/TagHelperSample.Web/TagHelpers/ConditionalCommentTagHelper.cs @@ -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.PostContent.Append(""); + } + } +} diff --git a/samples/TagHelperSample.Web/Views/TagHelper/ConditionalComment.cshtml b/samples/TagHelperSample.Web/Views/TagHelper/ConditionalComment.cshtml new file mode 100644 index 0000000000..f97c2b9a7f --- /dev/null +++ b/samples/TagHelperSample.Web/Views/TagHelper/ConditionalComment.cshtml @@ -0,0 +1,9 @@ +@using TagHelperSample.Web +@addTagHelper "*, TagHelperSample.Web" + + +

Content visible to all browsers newer than Internet Explorer 7.

+
+ +

Content visible only to Internet Explorer 7 users.

+