나는 생성하려고하는 새로운 태그 도우미를 테스트하려고합니다. 새로운 .net 핵심 유효성 검사의 단점을 발견하고 클래스 유효성 검사 유효성을 변경할 수 없습니다. 따라서 오류를 빨간색 배경으로 표시하려면 범위가 항상 변경되고 변경되지 않습니다. 그래서, 나 자신의 태그 도우미를 만들기로 결정했습니다. 문제는 그것을 작동 시키거나 방아쇠를 당길 수 없다는 것입니다. 나는 심지어 브레이크 포인트를 치지도 못한다. 지금까지 내가 태그 도우미에 대해 가지고있는 것이있다.커스텀 태그 도우미 디버깅
namespace MusicianProject.TagHelpers
{
// You may need to install the Microsoft.AspNetCore.Razor.Runtime package into your project
[HtmlTargetElement("invalid-class", Attributes = "validation-class")]
public class ValidateClassTagHelper : TagHelper
{
public ValidateClassTagHelper(IHtmlGenerator generator)
{
}
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
return base.ProcessAsync(context, output);
}
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.Attributes.Add("class", "test");
var attr = context.AllAttributes;
}
}
}
여기에 내 등록보기가 사용됩니다.
<div class="container">
<form asp-controller="Account" asp-action="Register" method="post">
<div class="col-md-4 col-md-offset-4">
<div class="form-group">
<label asp-for="FirstName"></label>
<input class="form-control" type="text" asp-for="FirstName" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="LastName"></label>
<input class="form-control" asp-for="LastName" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Email"></label>
<input class="form-control" type="text" asp-for="Email" />
<span validation-class="alert alert-danger" invalid-class="test" asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Password"></label>
<input asp-for="Password" type="password" id="password" class="form-control" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="ConfirmPassword"></label>
<input asp-for="ConfirmPassword" type="password" id="confirm-password" class="form-control" />
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
<div class="btn-group text-center">
<button class="btn btn-default">Sign up!</button>
<button class="btn btn-danger">Cancel</button>
</div>
</div>
</form>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
그리고 예 _ViewImports.cshtml 파일에 프로젝트 어셈블리 이름을 등록했습니다. 특정 파일 문제의 배치,하지만 내 _ViewImports.cshtml 파일을 내보기 폴더 루트 (SRC/조회/_ViewImports.cshtml) 내에있는 경우
@using MusicianProject
@using MusicianProject.Models
@addTagHelper "*, Microsoft.AspNetCore.Mvc.TagHelpers"
@addTagHelper "*, MusicianProject"
는 지금은 확실하지 않다, 내 태그 도우미는 자신이 폴더에 복사합니다 (src/TagHelpers/*).
무엇을 놓쳤으며 어떻게 해결할 수 있습니까?