2016-12-14 5 views
0

나는 생성하려고하는 새로운 태그 도우미를 테스트하려고합니다. 새로운 .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/*).

무엇을 놓쳤으며 어떻게 해결할 수 있습니까?

답변

1

당신은이 문제

1 HtmlTargetElement이 태그 도우미가 사용할 수있는 태그, 전직의 이름이 따라서 코드에서 도우미를 수행하면 절대로 해고되지 않습니다. HtmlTargetElement에 지정된 모든 태그에 기본적으로 적용되지 않으므로 validate-class 속성을 span 태그에 추가하여 호출해야합니다.

태그 도우미에 대한 자세한 내용을 알고하려면이 링크 https://blogs.msdn.microsoft.com/msgulfcommunity/2015/06/17/developing-custom-tag-helpers-in-asp-net-5/

을 확인하시기 바랍니다
1

내가 올바르게 이해했다면 문제는 중단 점에 맞지 않는다는 것입니다. 그 문제는 여기에있다 : "범위"가 될 것이라고 귀하의 경우 있도록

[HtmlTargetElement("invalid-class", Attributes = "validation-class")] 

HTMLTargetElement의 첫 번째 매개 변수, 당신은 대상으로하는 태그입니다. 클래스 이름을 입력했습니다.

이 방법을 사용하면 적어도 중단 점이 적중 될 것이므로 나머지는 알아낼 수있을 것입니다. 스팬, DIV, 테이블 ... 2 태그를 사용하지 않았다