我正在使用Asp.Net Core MVC,并且尝试创建新的Tag Helper属性,但是Tag helper属性不起作用,并且在剃刀视图上没有显示intelliSense。我不知道我在做什么错。
标记帮助程序代码
namespace Vue.js_Hello_World.Helpers
{
[HtmlTargetElement("input", Attributes = "asp-line")]
public class CustomTagHelper: TagHelper
{
[HtmlAttributeName("asp-line")]
public string ID { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (!string.IsNullOrEmpty(ID))
{
output.Attributes.SetAttribute("id", ID + new Guid());
}
base.Process(context, output);
}
}
}
_ViewImports.cshtml
@using Vue.js_Hello_World
@using Vue.js_Hello_World.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Vue.js_Hello_World
VueDetail.cshtml(这是局部视图)
@model Vue.js_Hello_World.Models.VueJsTestModelDetail
<td style="width:200px;">@Model.DetailId</td>
<td style="width:200px;">@Model.Id</td>
<td >
<input type="hidden" asp-for="DetailId" asp-line ="DetailId"/>
<input type="hidden" asp-for="Id" />
<input type="text" asp-for="Email" class="form-control-sm" style="width:250px;"/>
</td>
答案 0 :(得分:0)
属性和等号之间有一个空格。
此
<input type="hidden" asp-for="DetailId" asp-line ="DetailId"/>
应该看起来像这样
<input type="hidden" asp-for="DetailId" asp-line="DetailId"/>