Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Razor 在ASP.NET核心标记帮助程序中,公共属性未按预期工作_Razor_Asp.net Core - Fatal编程技术网

Razor 在ASP.NET核心标记帮助程序中,公共属性未按预期工作

Razor 在ASP.NET核心标记帮助程序中,公共属性未按预期工作,razor,asp.net-core,Razor,Asp.net Core,我已经从ASP.NET核心复制了电子邮件标记助手的演示 当我在查看页面上创建如下所示的标记时: <div> <Email MailTo="abc"></Email> </div> mailToWorks会像我预期的那样获得“abc”,但未设置公共权限MailTo。下面是我的标记帮助器源代码 [HtmlTargetElement("Email")] public class EmailTagHelper : TagHelper

我已经从ASP.NET核心复制了电子邮件标记助手的演示

当我在查看页面上创建如下所示的标记时:

<div>
  <Email MailTo="abc"></Email>
</div>
mailToWorks会像我预期的那样获得“abc”,但未设置公共权限MailTo。下面是我的标记帮助器源代码

    [HtmlTargetElement("Email")]
    public class EmailTagHelper : TagHelper
    {
        private const string EmailDomain = "contoso.com";

        // Can be passed via <email mail-to="..." />. 
        // Pascal case gets translated into lower-kebab-case.
        public string MailTo { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            var mailToWorks = output.Attributes["MailTo"].Value.ToString();

            output.TagName = "a";    // Replaces <email> with <a> tag

            var address = MailTo + "@" + EmailDomain;
            output.Attributes.SetAttribute("href", "mailto:" + address);
            output.Content.SetContent(address);
        }
    }
[HtmlTargetElement(“电子邮件”)]
公共类EmailTagHelper:TagHelper
{
private const string EmailDomain=“contoso.com”;
//可以通过。
//帕斯卡的情况下得到转化为较低的烤肉串情况。
公共字符串MailTo{get;set;}
公共覆盖无效进程(TagHelperContext上下文,TagHelperOutput输出)
{
var mailToWorks=output.Attributes[“MailTo”].Value.ToString();
output.TagName=“a”//替换为标记
var address=MailTo+“@”+EmailDomain;
output.Attributes.SetAttribute(“href”,“mailto:”+地址);
output.Content.SetContent(地址);
}
}

如果您想关闭转换成下烤肉串大小写,可以使用
HtmlAttributeNameAttribute

// matches <email MailTo="..." />
[HtmlAttributeName(nameof(MailTo))]
public string MailTo { get; set; }
//匹配
[HtmlAttributeName(名称(MailTo))]
公共字符串MailTo{get;set;}

如果您想关闭转换成下烤肉串大小写,可以使用
HtmlAttributeNameAttribute

// matches <email MailTo="..." />
[HtmlAttributeName(nameof(MailTo))]
public string MailTo { get; set; }
//匹配
[HtmlAttributeName(名称(MailTo))]
公共字符串MailTo{get;set;}

我想它说你应该这样做:谢谢@SerifEmek你是对的,这就解决了问题。奇怪的是,Intelissense建议使用紫色的“MailTo”。一旦我把它打印出来,它也喜欢邮件。这有意义吗?你很好。不,没有。实际上,我不熟悉这个用法。刚刚从你的链接中了解到。我想它说你应该有这样一句话:谢谢@SerifEmek你是对的,这就解决了问题。奇怪的是,Intelissense建议使用紫色的“MailTo”。一旦我把它打印出来,它也喜欢邮件。这有意义吗?你很好。不,没有。实际上,我不熟悉这个用法。刚刚从你的链接中了解到。