2017-07-10 6 views
0

anhängen Wenn wirASP.NET Core Label Taghelper. Wie benutzerdefinierte Text

<label asp-for="Email"></label> 

schreiben erzeugt es die folgende HTML:

<label for="Email">Email Address</label> 

Es funktioniert gut. Die Frage ist, ob es möglich ist, tag helper zu erweitern, um benutzerdefinierten Text zu unterstützen, der hinzugefügt werden soll. Zum Beispiel, wenn ich schreibe

<label asp-for="Email" asp-postfix=":"></label> 

es generiert die folgende HTML:

<label for="Email">Email Address:</label> 

Bitte beachten Sie, dass Doppelpunkt ist nun mit dem Labeltext hinzugefügt. Und der Doppelpunkt könnte durch irgendeinen anderen Text ersetzt werden.

Antwort

2

Wenn Sie den aktuellen aspnet-Tag-Helfer erweitern möchten, können Sie dies nicht tun. Sie müssen Ihren eigenen Tag-Helfer erstellen. Sowohl der aspnet als auch dein man wird laufen.

[HtmlTargetElement("label", Attributes = _textAttributeName)] 
public class PostfixTagHelper : TagHelper 
{ 
    private const string _textAttributeName = "postfix-text"; 

    [HtmlAttributeName(_textAttributeName)] 
    public string Text { get; set; } 

    public override void Process(TagHelperContext context, TagHelperOutput output) 
    { 
     base.Process(context, output); 

     output.Content.Append(Text); 
    } 

    public override int Order 
    { 
     get 
     { 
      return 100; // Needs to run after aspnet 
     } 
    } 
} 

es zu benutzen:

<label asp-for="Email" postfix-text=":"></label> 
Verwandte Themen