gpt4 book ai didi

c# - TagHelper 指定有效属性

转载 作者:行者123 更新时间:2023-11-30 14:28:03 28 4
gpt4 key购买 nike

我正在尝试在 MVC 6/ASP.Net vNext 中创建一个自定义标签助手 - taghelper 工作正常,但是有一种方法可以指定有效的 asp- 属性以与标签一起使用,以便它们出现在智能感知? 例如,我希望在 View 中添加符合条件的标记时,asp-ajaxasp-onsuccess 出现在智能感知列表中下面是我的标签助手:

[TargetElement("form", Attributes = AjaxForm)]
public class UnobtrusiveFormTagHelper : TagHelper
{
private const string AjaxForm = "asp-ajax";

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

output.Attributes.Add("data-ajax", true);
output.Attributes.Add("data-onsuccess", context.AllAttributes["asp-onsuccess"]);

}

}

用法:

<form asp-ajax="true" asp-onsuccess="dothis();">

提前致谢

最佳答案

使用您现在拥有的内容 (Attributes = AjaxForm),您将在 form 标记的 IntelliSense 中获得 asp-ajax。如果您还想在 form 标记的 IntelliSense 中提供 data-onsuccess,您可以添加另一个 TargetElement 属性,又名:[TargetElement( "表单", 属性 = "asp-onsuccess")]。我想指出,像这样添加 Attributes 只会控制 TagHelper 运行的“时间”。可以把它想象成在说:只有当这些属性出现在 HTML 元素上时才运行。

如果您想使用属性的值并提供 IntelliSense,您可以添加属性:

public bool AspAjax { get; set; }

[HtmlAttributeName("asp-onsuccess")]
public string AspOnSuccess { get; set; }

此方法不控制 TagHelper 运行的“时间”,但提供了一种将信息输入到 TagHelper 中的方法。它将使您能够获取它们的值并将它们添加为 data- 属性。请注意,通过添加 AspAjax/AspOnSuccess 作为属性,它们的值将不再存在于 output.Attributes 上,因此您无需删除它们。

希望这对您有所帮助!

关于c# - TagHelper 指定有效属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484567/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com