2016-12-09 1 views
-2

htmlHelper ValidationMessageFor를 사용하고 있습니다. 유효성 검사 오류가 있지만 요청이 서버로 전송되고 ModelState.IsValid가 true가됩니다. 어떤 종류의 유효성 검사 오류가 있으면 ModelState.IsVaid가 false가 될 수 있습니다. 클라이언트 쪽에서 할 수는 있지만 서버 쪽에서 개발하고 싶습니다.MVC 유효성 검사 오류가 있지만 서버에 요청을 보내고 ModelState.IsValid가 true입니다.

[DataType(DataType.EmailAddress)] 
[EmailAddress(ErrorMessage = "Wrong Email")] 
public string ElectronicMailAddress { get; set; } 

보기

@Html.LabelFor(model => model.ElectronicMailAddress, new { @class = "control-label"}) 
@Html.TextBoxFor(model => model.ElectronicMailAddress, new { @class = "form-control"}) 
@Html.ValidationMessageFor(model => model.ElectronicMailAddress, "", new { @class = "text-danger" }) 

컨트롤러 대신 Html.TextBoxFor의 작동하도록 검증에 Html.EditorFor를 사용할 필요가

[HttpPost] 
     public JsonResult CallingFunction() 
     { 
      if (ModelState.IsValid) 
      {........} 
} 
+0

"요청이 서버로 전송 됨"에 대한 설명을 적어주십시오. POST가 컨트롤러에 전송 된 것입니다 (이는 정상적인 동작이며 어떻게 동작해야하는지). 또는 컨트롤러가 항목이 잘못 처리 된 것처럼 처리했습니다 (이는 적어도 if (ModelState.IsValid) {...}'가 던져진 것). –

+0

'ModelState.IsValid' 사용법에 대한 자세한 내용은 여기를 참고하십시오 : https://www.asp.net/mvc/overview/older-versions/getting-started-with-aspnet-mvc4/adding-validation-to-the 모델 –

+0

@Peter BI에 내 질문 편집 –

답변

0

. 또한 아래 스크립트가 귀하의 페이지에로드되었는지 확인해야합니다. 번들 구문 또는 일반 참조를 통해

<script src="~/Scripts/jquery.min.js"></script> // your version of Jquery 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 
+0

Html.EditorFor조차도 Html.TextBoxFor와 동일하게 작동합니다. 그렇다면이 스크립트를 모두 내 cshtml에서 사용하고 있습니다. 유효성 검사 오류 "잘못된 전자 메일"이 표시되지만 요청이이 후에 ​​서버에 전달됩니다. modelstate.isvalid가 true가됩니다. 심지어 내가 Html.EditorFor 사용 –

관련 문제