2013-12-19 4 views
2

나는이 논리 실행할 수있는 도우미 구축을 위해 노력하고 액세스하는 도우미 건물 : 그것은 을 ViewDataHtml.ValidationSummaryMVC 4 -을 ViewData

에 액세스 할 필요가

if (ViewData.ModelState[""] != null && ViewData.ModelState[""].Errors.Any()) 
{ 
    <div class="note note-danger"> 
     <h4 class="block">Errors</h4> 
     <p>@Html.ValidationSummary()</p> 
    </div> 
} 

도우미로 보낼 필요가 있습니까? 도우미가 기본 클래스를 통해 어떤 방식 으로든 액세스 할 수 있습니까?

내 도우미 :

public static class ValidationSummaryHelper 
{ 
    public static HtmlString Summary(???) 
    { }} 
+0

면도칼 도우미입니까? –

답변

1

C#에서와 동일

public static class ValidationExtensions 
{ 
     public static MvcHtmlString AddCustomValidationSummary(this HtmlHelper htmlHelper) 
     { 
      string result = ""; 

      if (htmlHelper.ViewData.ModelState[""] != null && htmlHelper.ViewData.ModelState[""].Errors.Any()) 
      { 
       result = "<div class='note note-danger'><h4 class='block'>Errors</h4><p>" + htmlHelper.ValidationSummary().ToString() + "</p></div>"; 
      } 

      return new MvcHtmlString(result); 
     } 
} 
+0

사람들은 내가 이것을 게시하고 downvote를 결정한 이유를 궁금해 할 것입니다. 다만 나는 주된 질문과의 차이점을 생각했다. 메서드 매개 변수는 VB와 비교하여 C#에서 결정적으로 다릅니다. –

+0

그리고 예, 나는 댄 오의 대답을 upvote 않았다. –

3

나는 C#에서 그 구문을 잘 모르겠지만, VB에서이 같을 것이다는 :

<Extension> 
Public Function AddCustomValidationSummary(htmlHelper As HtmlHelper) As MvcHtmlString 
    Dim result As String = String.Empty 

    If (htmlHelper.ViewData.ModelState("") Is Nothing) AndAlso (htmlHelper.ViewData.ModelState("").Errors.Any()) Then 
     result = "<div class='note note-danger'><h4 class='block'>Errors</h4><p>" & htmlHelper.ValidationSummary().ToString() & "</p></div>" 
    End If 

    Return New MvcHtmlString(result) 
End Function 

가 좋아 사용

@Html.AddCustomValidationSummary()