2012-03-21 3 views
1

클라이언트 측 유효성 검사 및 유효성 검사 요약은 내 프로젝트 (MVC4 + Razor + Unobtrusive JS)에서 제대로 작동하지만 서버 측 오류는 내보기에 표시되지 않으며 클라이언트 측 오류가있는 경우, 뷰에서 제거되지는 않습니다 (ModelState에서 제거됩니다). Chrome14와 IE9에서 모두 시도했습니다.서버 측 오류에 대한 ValidationSummary가 작동하지 않습니다.

서버 쪽 오류는 ModelState.AddModelError(string.Empty, ModelState.AllErrors());으로 모델에 추가되었으며 @Html.ValidationSummary(false)으로 표시되었습니다.

편집

잘 작동 제출

간단한 형태로, 그것은 여러 오류 메시지가 서버 및 업데이트 오류 메시지에서 반환 표시하지만, AJAX 기반 양식은 AJAX 기반 양식에 의해 반환 된 오류 메시지입니다 제출을 작동하지 않는 제출 전혀 표시되지 않습니다. 여기

는 요청

@*... View contents related to Master Model ...*@ 
    @using (Ajax.BeginForm("ActionToAddRecord", new AjaxOptions())) 
    { 
     @Html.Action("ActionToAddRecord") 
     <input type="submit" value="Add Record"/> 
    } 
    @*... View contents related to Master Model ...*@ 

ActionToAddRecord가

오류

[HttpGet] 
public ActionResult ActionToAddRecord() 
{ 
    return View(); 
} 

[HttpPost] 
public ActionResult ActionToAddRecord(childModel model) 
{ 
    ModelState.AddModelError(string.Empty, "First error message"); 
    ModelState.AddModelError(string.Empty, "Second error message"); 
    return View(model); 
} 
로 반환 마스터 모델에 포함 된 모델을 나타내는 부분 단면도이다 제조되고 있는지의 샘플 데모 인

편집

VS2010에 의한 템플리트 된 MVC 애플리케이션에서 유사한 기능을 보았습니다.이 기능은 대화 상자 기반의 로그인 형식입니다. 오류 메시지가 Json으로 반환 된 다음 JS가이를 표시하는 데 사용 중이며, MS가 Ajax 기반 요청을 매우 쉽고 간결하게 (Ajax.BeginForm) 만들었지 만 오류 처리 부분이 누락 된 것처럼 보입니다. 지금은 JS를 사용하고 싶지 않습니다. 이런 유형의 오류 처리를 자동으로 처리하는 더 좋은 방법이있을 수 있습니다.

답변

0

해결되었습니다. 약간의 오차가 있습니다.

마스터보기

@*Master View Contents*@ 
     @using (Ajax.BeginForm("AddPaymentCurrency", new AjaxOptions { UpdateTargetId = "paymentCurrency" })) 
     { 
      <div id="paymentCurrency"> 
       @{Html.RenderPartial("PaymentCurrency", Model.PaymentCurrencyNew);} 
      </div> 
     } 

PaymentCurrency보기

@*Model Editors*@ 
@Html.ValidationSummary(false) 
<input type="submit" value="Add Payment Currency"/> 

<div id="paymentCurrencyList" style="width:inherit; height:auto; overflow:auto;"> 
    @Html.Action("PaymentCurrencyList") 
</div> 

컨트롤러

[HttpPost] 
public ActionResult AddPaymentCurrency(PaymentCurrency model) 
{ 
    if (!ModelState.IsValid) 
    { 
     ModelState.AddModelError(string.Empty, ModelState.AllErrors()); 
     return View("PaymentCurrency", model); 
    } 
    //Add login 
    return View("PaymentCurrency", model); 
} 

public ActionResult PaymentCurrencyList() 
{ 
    //var list = getList 
    return View(list); 
} 

작은 오류

ValidationSummary는 유효하지 않은 지불 통화를 추가하는 동안 강조 표시된 필드와 별표가 표시된 것으로 표시됩니다. 일단 유효한 통화가 추가되면 ValidationSummary와 별표는 유효하지 않은 지불 통화에 더 이상 표시되지 않고 필드 만 강조 표시됩니다.

그렇지 않으면 내가 큰 오류

을 받기 시작합니다, 내가 현재의 구조를 변경하지 않으려는 것, 내가 그것을 고정 얻을 도와주세요
관련 문제