diff --git a/src/Microsoft.AspNet.Mvc.TagHelpers/LabelTagHelper.cs b/src/Microsoft.AspNet.Mvc.TagHelpers/LabelTagHelper.cs
new file mode 100644
index 0000000000..33cc3f047a
--- /dev/null
+++ b/src/Microsoft.AspNet.Mvc.TagHelpers/LabelTagHelper.cs
@@ -0,0 +1,57 @@
+// Copyright (c) Microsoft Open Technologies, Inc. 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.Rendering;
+using Microsoft.AspNet.Razor.Runtime.TagHelpers;
+using Microsoft.AspNet.Razor.TagHelpers;
+
+namespace Microsoft.AspNet.Mvc.TagHelpers
+{
+ ///
+ /// implementation targeting <label> elements with for attributes.
+ ///
+ [ContentBehavior(ContentBehavior.Modify)]
+ public class LabelTagHelper : TagHelper
+ {
+ // Protected to ensure subclasses are correctly activated. Internal for ease of use when testing.
+ [Activate]
+ protected internal ViewContext ViewContext { get; set; }
+
+ // Protected to ensure subclasses are correctly activated. Internal for ease of use when testing.
+ [Activate]
+ protected internal IHtmlGenerator Generator { get; set; }
+
+ ///
+ /// An expression to be evaluated against the current model.
+ ///
+ public ModelExpression For { get; set; }
+
+ ///
+ public override void Process(TagHelperContext context, TagHelperOutput output)
+ {
+ if (For != null)
+ {
+ var tagBuilder = Generator.GenerateLabel(ViewContext,
+ For.Metadata,
+ For.Name,
+ labelText: null,
+ htmlAttributes: null);
+
+ if (tagBuilder != null)
+ {
+ output.MergeAttributes(tagBuilder);
+
+ // We check for whitespace to detect scenarios such as:
+ //
+ if (string.IsNullOrWhiteSpace(output.Content))
+ {
+ output.Content = tagBuilder.InnerHtml;
+ }
+
+ output.TagName = tagBuilder.TagName;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Microsoft.AspNet.Mvc.TagHelpers.Test/LabelTagHelperTest.cs b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/LabelTagHelperTest.cs
new file mode 100644
index 0000000000..4c353d62b4
--- /dev/null
+++ b/test/Microsoft.AspNet.Mvc.TagHelpers.Test/LabelTagHelperTest.cs
@@ -0,0 +1,199 @@
+// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Microsoft.AspNet.Mvc.ModelBinding;
+using Microsoft.AspNet.Mvc.Razor;
+using Microsoft.AspNet.Mvc.Rendering;
+using Microsoft.AspNet.Razor.Runtime.TagHelpers;
+using Xunit;
+
+namespace Microsoft.AspNet.Mvc.TagHelpers
+{
+ public class LabelTagHelperTest
+ {
+ // Model (List or Model instance), container type (Model or NestModel), model accessor,
+ // property path, TagHelperOutput.Content values.
+ public static TheoryData