当自定义标签助手的ModelExpression上的属性名称不是“ asp-for ”
时,则没有智能提示(模型属性建议)这不有效:
[HtmlAttributeName("for")]
public ModelExpression ForExpression { get; set; }
[HtmlAttributeName("abc-for")]
public ModelExpression ForExpression { get; set; }
这按预期方式工作-列出了模型属性:
[HtmlAttributeName("asp-for")]
public ModelExpression ForExpression { get; set; }
ASP.NET Core 2.2
Visual Studio 2017
答案 0 :(得分:0)
首先,如果要在视图上看到更新的智能感知,请确保在标记帮助程序的html属性名称发生任何更改后重建项目。
第二,确保没有其他选择器引起此问题。 HtmlTargetElementAttribute
具有其他属性,可以在运行标签帮助程序时使用它们缩小范围。这些其他属性是:
id
或disabled
如果您为这些属性设置值,那么如果您不满足所有条件,那么您就不会在目标HTML标记上看到智能提示。
以这个为例:
[HtmlTargetElement("input")]
public class PlaceholderTagHelper : TagHelper
{
[HtmlAttributeName("asp-for")]
public ModelExpression ForExpression { get; set; }
}
您只要编写<input>
标签,就会显示ModelExpression
的智能提示。但是,如果要添加disabled
属性要求,例如:
[HtmlTargetElement("input", Attributes = "disabled")]
public class PlaceholderTagHelper : TagHelper
{
[HtmlAttributeName("asp-for")]
public ModelExpression ForExpression { get; set; }
}
...然后,只要您满足所有条件(在此情况下为<input>
标签并具有disabled
属性),就会显示出智能提示。