2013-07-13 3 views
3

이것은 Javascript를 사용하여 MVC의 ModelState에 오류 메시지를 추가하는 방법은 무엇입니까?

public ModelStateDictionary modelSateClientSide { get; set; } 

가 지금은 자바 스크립트의 속성을 불러

if (parseInt(academicAchievement, 10) > parseInt(peAcademicAchievement, 10)) 
{ 
    @Model.modelSateClientSide.AddModelError(string.Empty, "xxx"); 
    return false; 
} 

내가 제대로하고있는 건가요 내 ModelState에서 오류를 추가 내 모델의 속성입니다?

System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult) ' 에 가장 적합한 오버로드 된 메서드에 일치하는 일부 잘못된 인수가 : 그리고 위의 줄에 오류가 발생했습니다.

어떻게 해결할 수 있습니까? Javascript를 사용하여 MVC에서 ModelState에 오류 메시지를 추가하는 다른 옵션은 무엇입니까?

답변

8

글쎄, 자바 스크립트를 사용하여 ModelState 사전에 쓸 수 있다고 생각하지 않습니다. 클라이언트 측 언어이고 C#/면도기가 서버 측에서 처리되기 때문입니다. 당신이 게시 코드에서

, 라인

@Model.modelSateClientSide.AddModelError(string.Empty, "xxx"); 

실제로는 자바 스크립트 또는 조건문에 대해 서버에서 처리되며, 면도기는 "알고"하지 않는 페이지가로드 때문에 때마다 평가됩니다 .

그러나 기본적으로 HtmlHelper가 생성하는 것과 유사한 오류 메시지 만 표시하려면 JavaScript 기능을 작성하면됩니다. 다음과 같이 다소 차이가 날 수 있습니다.

function showClientError(message) { 
    var $div = $('.validation-summary-errors'); 
    if ($div.length == 0) { 
     $div = $('<div class="validation-summary-errors">'); 
     $div.html('<ul></ul>'); 
     // Put the $div somewhere 
     $div.appendTo($('#myForm')); 
    } 
    $div.find('ul').append($('<li>').text(message)); 
} 
관련 문제