Rename `TargetElementAttribute` => `HtmlTargetElementAttribute`.

- Nearly every other `TagHelper` related element targeting attribute has `Html` a part of its name. With this rename, the attribute will be consistent.

#516
This commit is contained in:
N. Taylor Mullen 2015-09-13 12:13:06 -07:00
parent fcadbc9095
commit f71f9fb679
12 changed files with 85 additions and 80 deletions

View File

@ -77,17 +77,17 @@ namespace Microsoft.AspNet.Razor.Runtime
/// <summary> /// <summary>
/// {0} name cannot be null or whitespace. /// {0} name cannot be null or whitespace.
/// </summary> /// </summary>
internal static string TargetElementAttribute_NameCannotBeNullOrWhitespace internal static string HtmlTargetElementAttribute_NameCannotBeNullOrWhitespace
{ {
get { return GetString("TargetElementAttribute_NameCannotBeNullOrWhitespace"); } get { return GetString("HtmlTargetElementAttribute_NameCannotBeNullOrWhitespace"); }
} }
/// <summary> /// <summary>
/// {0} name cannot be null or whitespace. /// {0} name cannot be null or whitespace.
/// </summary> /// </summary>
internal static string FormatTargetElementAttribute_NameCannotBeNullOrWhitespace(object p0) internal static string FormatHtmlTargetElementAttribute_NameCannotBeNullOrWhitespace(object p0)
{ {
return string.Format(CultureInfo.CurrentCulture, GetString("TargetElementAttribute_NameCannotBeNullOrWhitespace"), p0); return string.Format(CultureInfo.CurrentCulture, GetString("HtmlTargetElementAttribute_NameCannotBeNullOrWhitespace"), p0);
} }
/// <summary> /// <summary>
@ -125,17 +125,17 @@ namespace Microsoft.AspNet.Razor.Runtime
/// <summary> /// <summary>
/// Tag helpers cannot target {0} name '{1}' because it contains a '{2}' character. /// Tag helpers cannot target {0} name '{1}' because it contains a '{2}' character.
/// </summary> /// </summary>
internal static string TargetElementAttribute_InvalidName internal static string HtmlTargetElementAttribute_InvalidName
{ {
get { return GetString("TargetElementAttribute_InvalidName"); } get { return GetString("HtmlTargetElementAttribute_InvalidName"); }
} }
/// <summary> /// <summary>
/// Tag helpers cannot target {0} name '{1}' because it contains a '{2}' character. /// Tag helpers cannot target {0} name '{1}' because it contains a '{2}' character.
/// </summary> /// </summary>
internal static string FormatTargetElementAttribute_InvalidName(object p0, object p1, object p2) internal static string FormatHtmlTargetElementAttribute_InvalidName(object p0, object p1, object p2)
{ {
return string.Format(CultureInfo.CurrentCulture, GetString("TargetElementAttribute_InvalidName"), p0, p1, p2); return string.Format(CultureInfo.CurrentCulture, GetString("HtmlTargetElementAttribute_InvalidName"), p0, p1, p2);
} }
/// <summary> /// <summary>

View File

@ -129,7 +129,7 @@
<data name="ScopeManager_EndCannotBeCalledWithoutACallToBegin" xml:space="preserve"> <data name="ScopeManager_EndCannotBeCalledWithoutACallToBegin" xml:space="preserve">
<value>Must call '{2}.{1}' before calling '{2}.{0}'.</value> <value>Must call '{2}.{1}' before calling '{2}.{0}'.</value>
</data> </data>
<data name="TargetElementAttribute_NameCannotBeNullOrWhitespace" xml:space="preserve"> <data name="HtmlTargetElementAttribute_NameCannotBeNullOrWhitespace" xml:space="preserve">
<value>{0} name cannot be null or whitespace.</value> <value>{0} name cannot be null or whitespace.</value>
</data> </data>
<data name="ArgumentCannotBeNullOrEmpty" xml:space="preserve"> <data name="ArgumentCannotBeNullOrEmpty" xml:space="preserve">
@ -138,7 +138,7 @@
<data name="TagHelperDescriptorResolver_EncounteredUnexpectedError" xml:space="preserve"> <data name="TagHelperDescriptorResolver_EncounteredUnexpectedError" xml:space="preserve">
<value>Encountered an unexpected error when attempting to resolve tag helper directive '{0}' with value '{1}'. Error: {2}</value> <value>Encountered an unexpected error when attempting to resolve tag helper directive '{0}' with value '{1}'. Error: {2}</value>
</data> </data>
<data name="TargetElementAttribute_InvalidName" xml:space="preserve"> <data name="HtmlTargetElementAttribute_InvalidName" xml:space="preserve">
<value>Tag helpers cannot target {0} name '{1}' because it contains a '{2}' character.</value> <value>Tag helpers cannot target {0} name '{1}' because it contains a '{2}' character.</value>
</data> </data>
<data name="TagHelperDescriptorResolver_InvalidTagHelperDirective" xml:space="preserve"> <data name="TagHelperDescriptorResolver_InvalidTagHelperDirective" xml:space="preserve">

View File

@ -10,30 +10,30 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
/// Provides an <see cref="ITagHelper"/>'s target. /// Provides an <see cref="ITagHelper"/>'s target.
/// </summary> /// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public sealed class TargetElementAttribute : Attribute public sealed class HtmlTargetElementAttribute : Attribute
{ {
public const string ElementCatchAllTarget = TagHelperDescriptorProvider.ElementCatchAllTarget; public const string ElementCatchAllTarget = TagHelperDescriptorProvider.ElementCatchAllTarget;
/// <summary> /// <summary>
/// Instantiates a new instance of the <see cref="TargetElementAttribute"/> class with <see cref="Tag"/> /// Instantiates a new instance of the <see cref="HtmlTargetElementAttribute"/> class with <see cref="Tag"/>
/// set to <c>*</c>. /// set to <c>*</c>.
/// </summary> /// </summary>
/// <remarks>A <c>*</c> <see cref="Tag"/> value indicates an <see cref="ITagHelper"/> /// <remarks>A <c>*</c> <see cref="Tag"/> value indicates an <see cref="ITagHelper"/>
/// that targets all HTML elements with the required <see cref="Attributes"/>.</remarks> /// that targets all HTML elements with the required <see cref="Attributes"/>.</remarks>
public TargetElementAttribute() public HtmlTargetElementAttribute()
: this(ElementCatchAllTarget) : this(ElementCatchAllTarget)
{ {
} }
/// <summary> /// <summary>
/// Instantiates a new instance of the <see cref="TargetElementAttribute"/> class. /// Instantiates a new instance of the <see cref="HtmlTargetElementAttribute"/> class.
/// </summary> /// </summary>
/// <param name="tag"> /// <param name="tag">
/// The HTML tag the <see cref="ITagHelper"/> targets. /// The HTML tag the <see cref="ITagHelper"/> targets.
/// </param> /// </param>
/// <remarks>A <c>*</c> <paramref name="tag"/> value indicates an <see cref="ITagHelper"/> /// <remarks>A <c>*</c> <paramref name="tag"/> value indicates an <see cref="ITagHelper"/>
/// that targets all HTML elements with the required <see cref="Attributes"/>.</remarks> /// that targets all HTML elements with the required <see cref="Attributes"/>.</remarks>
public TargetElementAttribute(string tag) public HtmlTargetElementAttribute(string tag)
{ {
Tag = tag; Tag = tag;
} }

View File

@ -9,9 +9,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
/// <summary> /// <summary>
/// Restricts children of the <see cref="ITagHelper"/>'s element. /// Restricts children of the <see cref="ITagHelper"/>'s element.
/// </summary> /// </summary>
/// <remarks>Combining this attribute with a <see cref="TargetElementAttribute"/> that specifies its /// <remarks>Combining this attribute with a <see cref="HtmlTargetElementAttribute"/> that specifies its
/// <see cref="TargetElementAttribute.TagStructure"/> as <see cref="TagStructure.WithoutEndTag"/> will result in /// <see cref="HtmlTargetElementAttribute.TagStructure"/> as <see cref="TagStructure.WithoutEndTag"/> will result
/// this attribute being ignored.</remarks> /// in this attribute being ignored.</remarks>
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
public class RestrictChildrenAttribute : Attribute public class RestrictChildrenAttribute : Attribute
{ {

View File

@ -64,7 +64,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
} }
var attributeDescriptors = GetAttributeDescriptors(typeInfo, designTime, errorSink); var attributeDescriptors = GetAttributeDescriptors(typeInfo, designTime, errorSink);
var targetElementAttributes = GetValidTargetElementAttributes(typeInfo, errorSink); var targetElementAttributes = GetValidHtmlTargetElementAttributes(typeInfo, errorSink);
var allowedChildren = GetAllowedChildren(typeInfo, errorSink); var allowedChildren = GetAllowedChildren(typeInfo, errorSink);
var tagHelperDescriptors = var tagHelperDescriptors =
@ -79,20 +79,21 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
return tagHelperDescriptors.Distinct(TagHelperDescriptorComparer.Default); return tagHelperDescriptors.Distinct(TagHelperDescriptorComparer.Default);
} }
private static IEnumerable<TargetElementAttribute> GetValidTargetElementAttributes( private static IEnumerable<HtmlTargetElementAttribute> GetValidHtmlTargetElementAttributes(
ITypeInfo typeInfo, ITypeInfo typeInfo,
ErrorSink errorSink) ErrorSink errorSink)
{ {
var targetElementAttributes = typeInfo.GetCustomAttributes<TargetElementAttribute>(); var targetElementAttributes = typeInfo.GetCustomAttributes<HtmlTargetElementAttribute>();
return targetElementAttributes.Where(attribute => ValidTargetElementAttributeNames(attribute, errorSink)); return targetElementAttributes.Where(
attribute => ValidHtmlTargetElementAttributeNames(attribute, errorSink));
} }
private static IEnumerable<TagHelperDescriptor> BuildTagHelperDescriptors( private static IEnumerable<TagHelperDescriptor> BuildTagHelperDescriptors(
ITypeInfo typeInfo, ITypeInfo typeInfo,
string assemblyName, string assemblyName,
IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors, IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors,
IEnumerable<TargetElementAttribute> targetElementAttributes, IEnumerable<HtmlTargetElementAttribute> targetElementAttributes,
IEnumerable<string> allowedChildren, IEnumerable<string> allowedChildren,
bool designTime) bool designTime)
{ {
@ -183,9 +184,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{ {
var valid = TryValidateName( var valid = TryValidateName(
name, name,
whitespaceError: Resources.FormatTagHelperDescriptorFactory_InvalidRestrictChildrenAttributeNameNullWhitespace( whitespaceError:
nameof(RestrictChildrenAttribute), Resources.FormatTagHelperDescriptorFactory_InvalidRestrictChildrenAttributeNameNullWhitespace(
tagHelperName), nameof(RestrictChildrenAttribute),
tagHelperName),
characterErrorBuilder: (invalidCharacter) => characterErrorBuilder: (invalidCharacter) =>
Resources.FormatTagHelperDescriptorFactory_InvalidRestrictChildrenAttributeName( Resources.FormatTagHelperDescriptorFactory_InvalidRestrictChildrenAttributeName(
nameof(RestrictChildrenAttribute), nameof(RestrictChildrenAttribute),
@ -207,7 +209,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
string typeName, string typeName,
string assemblyName, string assemblyName,
IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors, IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors,
TargetElementAttribute targetElementAttribute, HtmlTargetElementAttribute targetElementAttribute,
IEnumerable<string> allowedChildren, IEnumerable<string> allowedChildren,
TagHelperDesignTimeDescriptor designTimeDescriptor) TagHelperDesignTimeDescriptor designTimeDescriptor)
{ {
@ -259,8 +261,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
/// <summary> /// <summary>
/// Internal for testing. /// Internal for testing.
/// </summary> /// </summary>
internal static bool ValidTargetElementAttributeNames( internal static bool ValidHtmlTargetElementAttributeNames(
TargetElementAttribute attribute, HtmlTargetElementAttribute attribute,
ErrorSink errorSink) ErrorSink errorSink)
{ {
var validTagName = ValidateName(attribute.Tag, targetingAttributes: false, errorSink: errorSink); var validTagName = ValidateName(attribute.Tag, targetingAttributes: false, errorSink: errorSink);
@ -289,7 +291,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
TagHelperDescriptorProvider.ElementCatchAllTarget, TagHelperDescriptorProvider.ElementCatchAllTarget,
StringComparison.OrdinalIgnoreCase)) StringComparison.OrdinalIgnoreCase))
{ {
// '*' as the entire name is OK in the TargetElement catch-all case. // '*' as the entire name is OK in the HtmlTargetElement catch-all case.
return true; return true;
} }
else if (targetingAttributes && else if (targetingAttributes &&
@ -308,9 +310,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var validName = TryValidateName( var validName = TryValidateName(
name, name,
whitespaceError: Resources.FormatTargetElementAttribute_NameCannotBeNullOrWhitespace(targetName), whitespaceError: Resources.FormatHtmlTargetElementAttribute_NameCannotBeNullOrWhitespace(targetName),
characterErrorBuilder: (invalidCharacter) => characterErrorBuilder: (invalidCharacter) =>
Resources.FormatTargetElementAttribute_InvalidName(targetName.ToLower(), name, invalidCharacter), Resources.FormatHtmlTargetElementAttribute_InvalidName(
targetName.ToLower(),
name,
invalidCharacter),
errorSink: errorSink); errorSink: errorSink);
return validName; return validName;

View File

@ -61,7 +61,7 @@ namespace Microsoft.AspNet.Razor.CodeGenerators
public void RenderTagHelper(TagHelperChunk chunk) public void RenderTagHelper(TagHelperChunk chunk)
{ {
// Remove any duplicate TagHelperDescriptors that reference the same type name. Duplicates can occur when // Remove any duplicate TagHelperDescriptors that reference the same type name. Duplicates can occur when
// multiple TargetElement attributes are on a TagHelper type and matches overlap for an HTML element. // multiple HtmlTargetElement attributes are on a TagHelper type and matches overlap for an HTML element.
// Having more than one descriptor with the same TagHelper type results in generated code that runs // Having more than one descriptor with the same TagHelper type results in generated code that runs
// the same TagHelper X many times (instead of once) over a single HTML element. // the same TagHelper X many times (instead of once) over a single HTML element.
var tagHelperDescriptors = chunk.Descriptors.Distinct(TypeBasedTagHelperDescriptorComparer.Default); var tagHelperDescriptors = chunk.Descriptors.Distinct(TypeBasedTagHelperDescriptorComparer.Default);

View File

@ -10,8 +10,8 @@ using Microsoft.AspNet.Razor.Runtime.TagHelpers;
namespace Microsoft.AspNet.Razor.Runtime.Precompilation namespace Microsoft.AspNet.Razor.Runtime.Precompilation
{ {
[TargetElement("img", Attributes = AppendVersionAttributeName + "," + SrcAttributeName)] [HtmlTargetElement("img", Attributes = AppendVersionAttributeName + "," + SrcAttributeName)]
[TargetElement("image", Attributes = SrcAttributeName)] [HtmlTargetElement("image", Attributes = SrcAttributeName)]
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
[EnumProperty(DayOfWeek = DayOfWeek.Friday)] [EnumProperty(DayOfWeek = DayOfWeek.Friday)]
[CustomValidation(typeof(Validator), "ValidationMethod", ErrorMessageResourceType = typeof(ResourceManager))] [CustomValidation(typeof(Validator), "ValidationMethod", ErrorMessageResourceType = typeof(ResourceManager))]

View File

@ -10,7 +10,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Precompilation
{ {
[RestrictChildren(Never)] [RestrictChildren(Never)]
[CustomValidation(typeof(TypeDoesNotExist)] [CustomValidation(typeof(TypeDoesNotExist)]
[TargetElement("img" [HtmlTargetElement("img"
public class TypeWithMalformedAttribute public class TypeWithMalformedAttribute
{ {

View File

@ -134,7 +134,7 @@ namespace Microsoft.AspNet.Razor.Runtime.Precompilation
var actual = Assert.Single(exportedTypes); var actual = Assert.Single(exportedTypes);
AssertEqual(expected.AsType(), actual); AssertEqual(expected.AsType(), actual);
AssertAttributes<TargetElementAttribute>( AssertAttributes<HtmlTargetElementAttribute>(
expected, expected,
actual, actual,
(expectedAttribute, actualAttribute) => (expectedAttribute, actualAttribute) =>
@ -406,7 +406,7 @@ namespace Microsoft.AspNet.Razor.Runtime.Precompilation
// Assert // Assert
var actual = Assert.Single(exportedTypes); var actual = Assert.Single(exportedTypes);
var targetElementAttribute = Assert.Single(actual.GetCustomAttributes<TargetElementAttribute>()); var targetElementAttribute = Assert.Single(actual.GetCustomAttributes<HtmlTargetElementAttribute>());
Assert.Equal("img", targetElementAttribute.Tag); Assert.Equal("img", targetElementAttribute.Tag);
Assert.Null(targetElementAttribute.Attributes); Assert.Null(targetElementAttribute.Attributes);

View File

@ -112,10 +112,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
// Arrange // Arrange
var typeInfo = typeof(TypeWithAttributes).GetTypeInfo(); var typeInfo = typeof(TypeWithAttributes).GetTypeInfo();
var runtimeTypeInfo = new RuntimeTypeInfo(typeInfo); var runtimeTypeInfo = new RuntimeTypeInfo(typeInfo);
var expected = typeInfo.GetCustomAttributes<TargetElementAttribute>(); var expected = typeInfo.GetCustomAttributes<HtmlTargetElementAttribute>();
// Act // Act
var actual = runtimeTypeInfo.GetCustomAttributes<TargetElementAttribute>(); var actual = runtimeTypeInfo.GetCustomAttributes<HtmlTargetElementAttribute>();
// Assert // Assert
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
@ -380,8 +380,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
private int Property4 { get; set; } private int Property4 { get; set; }
} }
[TargetElement("test1")] [HtmlTargetElement("test1")]
[TargetElement("test2")] [HtmlTargetElement("test2")]
private class TypeWithAttributes private class TypeWithAttributes
{ {
} }

View File

@ -1104,15 +1104,15 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
[Theory] [Theory]
[MemberData(nameof(InvalidNameData))] [MemberData(nameof(InvalidNameData))]
public void ValidTargetElementAttributeNames_CreatesErrorOnInvalidNames( public void ValidHtmlTargetElementAttributeNames_CreatesErrorOnInvalidNames(
string name, string[] expectedErrorMessages) string name, string[] expectedErrorMessages)
{ {
// Arrange // Arrange
var errorSink = new ErrorSink(); var errorSink = new ErrorSink();
var attribute = new TargetElementAttribute(name); var attribute = new HtmlTargetElementAttribute(name);
// Act // Act
TagHelperDescriptorFactory.ValidTargetElementAttributeNames(attribute, errorSink); TagHelperDescriptorFactory.ValidHtmlTargetElementAttributeNames(attribute, errorSink);
// Assert // Assert
var errors = errorSink.Errors.ToArray(); var errors = errorSink.Errors.ToArray();

View File

@ -20,26 +20,26 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{ {
} }
[TargetElement("p")] [HtmlTargetElement("p")]
[TargetElement("div")] [HtmlTargetElement("div")]
[RestrictChildren("p", "strong")] [RestrictChildren("p", "strong")]
public class MultiTargetRestrictChildrenTagHelper public class MultiTargetRestrictChildrenTagHelper
{ {
} }
[TargetElement("input", TagStructure = TagStructure.WithoutEndTag)] [HtmlTargetElement("input", TagStructure = TagStructure.WithoutEndTag)]
public class TagStructureTagHelper : TagHelper public class TagStructureTagHelper : TagHelper
{ {
} }
[TargetElement("p", TagStructure = TagStructure.NormalOrSelfClosing)] [HtmlTargetElement("p", TagStructure = TagStructure.NormalOrSelfClosing)]
[TargetElement("input", TagStructure = TagStructure.WithoutEndTag)] [HtmlTargetElement("input", TagStructure = TagStructure.WithoutEndTag)]
public class MultiSpecifiedTagStructureTagHelper : TagHelper public class MultiSpecifiedTagStructureTagHelper : TagHelper
{ {
} }
[TargetElement("p")] [HtmlTargetElement("p")]
[TargetElement("input", TagStructure = TagStructure.WithoutEndTag)] [HtmlTargetElement("input", TagStructure = TagStructure.WithoutEndTag)]
public class MultiWithUnspecifiedTagStructureTagHelper : TagHelper public class MultiWithUnspecifiedTagStructureTagHelper : TagHelper
{ {
} }
@ -90,84 +90,84 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
public override int Property { get; set; } public override int Property { get; set; }
} }
[TargetElement("p")] [HtmlTargetElement("p")]
[TargetElement("div")] [HtmlTargetElement("div")]
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
public class MultiEditorBrowsableTagHelper : TagHelper public class MultiEditorBrowsableTagHelper : TagHelper
{ {
} }
[TargetElement(Attributes = "class*")] [HtmlTargetElement(Attributes = "class*")]
public class AttributeWildcardTargetingTagHelper : TagHelper public class AttributeWildcardTargetingTagHelper : TagHelper
{ {
} }
[TargetElement(Attributes = "class*,style*")] [HtmlTargetElement(Attributes = "class*,style*")]
public class MultiAttributeWildcardTargetingTagHelper : TagHelper public class MultiAttributeWildcardTargetingTagHelper : TagHelper
{ {
} }
[TargetElement(Attributes = "class")] [HtmlTargetElement(Attributes = "class")]
public class AttributeTargetingTagHelper : TagHelper public class AttributeTargetingTagHelper : TagHelper
{ {
} }
[TargetElement(Attributes = "class,style")] [HtmlTargetElement(Attributes = "class,style")]
public class MultiAttributeTargetingTagHelper : TagHelper public class MultiAttributeTargetingTagHelper : TagHelper
{ {
} }
[TargetElement(Attributes = "custom")] [HtmlTargetElement(Attributes = "custom")]
[TargetElement(Attributes = "class,style")] [HtmlTargetElement(Attributes = "class,style")]
public class MultiAttributeAttributeTargetingTagHelper : TagHelper public class MultiAttributeAttributeTargetingTagHelper : TagHelper
{ {
} }
[TargetElement(Attributes = "style")] [HtmlTargetElement(Attributes = "style")]
public class InheritedAttributeTargetingTagHelper : AttributeTargetingTagHelper public class InheritedAttributeTargetingTagHelper : AttributeTargetingTagHelper
{ {
} }
[TargetElement("input", Attributes = "class")] [HtmlTargetElement("input", Attributes = "class")]
public class RequiredAttributeTagHelper : TagHelper public class RequiredAttributeTagHelper : TagHelper
{ {
} }
[TargetElement("div", Attributes = "class")] [HtmlTargetElement("div", Attributes = "class")]
public class InheritedRequiredAttributeTagHelper : RequiredAttributeTagHelper public class InheritedRequiredAttributeTagHelper : RequiredAttributeTagHelper
{ {
} }
[TargetElement("div", Attributes = "class")] [HtmlTargetElement("div", Attributes = "class")]
[TargetElement("input", Attributes = "class")] [HtmlTargetElement("input", Attributes = "class")]
public class MultiAttributeRequiredAttributeTagHelper : TagHelper public class MultiAttributeRequiredAttributeTagHelper : TagHelper
{ {
} }
[TargetElement("input", Attributes = "style")] [HtmlTargetElement("input", Attributes = "style")]
[TargetElement("input", Attributes = "class")] [HtmlTargetElement("input", Attributes = "class")]
public class MultiAttributeSameTagRequiredAttributeTagHelper : TagHelper public class MultiAttributeSameTagRequiredAttributeTagHelper : TagHelper
{ {
} }
[TargetElement("input", Attributes = "class,style")] [HtmlTargetElement("input", Attributes = "class,style")]
public class MultiRequiredAttributeTagHelper : TagHelper public class MultiRequiredAttributeTagHelper : TagHelper
{ {
} }
[TargetElement("div", Attributes = "style")] [HtmlTargetElement("div", Attributes = "style")]
public class InheritedMultiRequiredAttributeTagHelper : MultiRequiredAttributeTagHelper public class InheritedMultiRequiredAttributeTagHelper : MultiRequiredAttributeTagHelper
{ {
} }
[TargetElement("div", Attributes = "class,style")] [HtmlTargetElement("div", Attributes = "class,style")]
[TargetElement("input", Attributes = "class,style")] [HtmlTargetElement("input", Attributes = "class,style")]
public class MultiTagMultiRequiredAttributeTagHelper : TagHelper public class MultiTagMultiRequiredAttributeTagHelper : TagHelper
{ {
} }
[TargetElement("p")] [HtmlTargetElement("p")]
[TargetElement("div")] [HtmlTargetElement("div")]
public class MultiTagTagHelper public class MultiTagTagHelper
{ {
public string ValidAttribute { get; set; } public string ValidAttribute { get; set; }
@ -177,15 +177,15 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{ {
} }
[TargetElement("p")] [HtmlTargetElement("p")]
[TargetElement("p")] [HtmlTargetElement("p")]
[TargetElement("div")] [HtmlTargetElement("div")]
[TargetElement("div")] [HtmlTargetElement("div")]
public class DuplicateTagNameTagHelper public class DuplicateTagNameTagHelper
{ {
} }
[TargetElement("data-condition")] [HtmlTargetElement("data-condition")]
public class OverrideNameTagHelper public class OverrideNameTagHelper
{ {
} }
@ -387,8 +387,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
{ {
} }
[TargetElement("a")] [HtmlTargetElement("a")]
[TargetElement("p")] [HtmlTargetElement("p")]
[OutputElementHint("div")] [OutputElementHint("div")]
public class MulitpleDescriptorTagHelperWithOutputElementHint : TagHelper public class MulitpleDescriptorTagHelperWithOutputElementHint : TagHelper
{ {