And*_*i M 1 asp.net asp.net-core-mvc asp.net-core
当我们写
<label asp-for="Email"></label>
Run Code Online (Sandbox Code Playgroud)
它生成以下HTML:
<label for="Email">Email Address</label>
Run Code Online (Sandbox Code Playgroud)
工作正常。问题是是否有可能扩展标签助手以支持要添加的自定义文本?例如,如果我写
<label asp-for="Email" asp-postfix=":"></label>
Run Code Online (Sandbox Code Playgroud)
它生成以下HTML:
<label for="Email">Email Address:</label>
Run Code Online (Sandbox Code Playgroud)
请注意,现在冒号已添加到标签文本中。冒号可以用任何其他文本替换。
如果您打算扩展当前的aspnet标记帮助器,则不能。您将需要创建自己的标签助手。aspnet和您的一个都将运行。
[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
}
}
}
Run Code Online (Sandbox Code Playgroud)
要使用它:
<label asp-for="Email" postfix-text=":"></label>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |