다음과 같은 간단한 ASP.NET MVC 작업이 있습니다.
public ActionResult Edit(EditPostViewModel data)
{
}
다음 EditPostViewModel
과 같은 유효성 검사 속성이 있습니다.
[Display(Name = "...", Description = "...")]
[StringLength(100, MinimumLength = 3, ErrorMessage = "...")]
[Required()]
public string Title { get; set; }
보기에서 다음 도우미를 사용하고 있습니다.
@Html.LabelFor(Model => Model.EditPostViewModel.Title, true)
@Html.TextBoxFor(Model => Model.EditPostViewModel.Title,
new { @class = "tb1", @Style = "width:400px;" })
이 텍스트 상자가 유효성 검사에 배치 된 양식을 제출하면 클라이언트에서 먼저 수행 된 다음 service ( ModelState.IsValid
)에서 수행됩니다.
이제 몇 가지 질문이 있습니다.
대신 jQuery ajax 제출과 함께 사용할 수 있습니까? 내가하는 일은 단순히 양식을 제거하고 제출 버튼을 클릭하면 javascript가 데이터를 수집 한 다음
$.ajax
.서버 측이
ModelState.IsValid
작동합니까?유효성 검사 문제를 클라이언트로 다시 전달하고 마치 build int validation (
@Html.ValidationSummary(true)
)을 사용하는 것처럼 표시하려면 어떻게해야합니까?
Ajax 호출의 예 :
function SendPost(actionPath) {
$.ajax({
url: actionPath,
type: 'POST',
dataType: 'json',
data:
{
Text: $('#EditPostViewModel_Text').val(),
Title: $('#EditPostViewModel_Title').val()
},
success: function (data) {
alert('success');
},
error: function () {
alert('error');
}
});
}
편집 1 :
페이지에 포함 :
<script src="/Scripts/jquery-1.7.1.min.js"></script>
<script src="/Scripts/jquery.validate.min.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js"></script>