당신은 당신의 컨트롤러 액션에서 수동 유효성 검사를 수행 할 수 있습니다. AddModelError
메서드는 유효성 검사 스택을 사용하는 데 도움이됩니다.
[HttpPost]
public ActionResult Edit(EditModel model)
{
if (string.IsNullOrEmpty(model.ISBN) && string.IsNullOrEmpty(model.ISBN13))
{
var validationMessage = "Please provide ISBN or ISBN13.";
this.ModelState.AddModelError("ISBN", validationMessage);
this.ModelState.AddModelError("ISBN13", validationMessage);
}
if (!string.IsNullOrEmpty(model.ISBN) && !string.IsNullOrEmpty(model.ISBN13))
{
var validationMessage = "Please provide either the ISBN or the ISBN13.";
this.ModelState.AddModelError("ISBN", validationMessage);
this.ModelState.AddModelError("ISBN13", validationMessage);
}
if (this.ModelState.IsValid)
{
// do something with the model
}
return this.View(model);
}
일부 사람들은 쿼리 유효성 검사를 수행하는 것이 컨트롤러의 책임이 아니라고 말할 수도 있습니다. 컨트롤러의 책임은 웹 요청을 도메인 요청에 적용하는 것입니다. 따라서 컨트롤러에는 유효성 검사 로직이있을 수 있습니다. 도메인/비즈니스 계층이없는 경우이 고려 사항은 의미가 없습니다.
원하는 답변을 얻으려면 여기에 게시 된 답변을 약간 변경하면됩니다. http://stackoverflow.com/questions/11959431/how-to-create-a-custom-validation-attribute?rq=1 – Shyju
사용자 정의 코드는 여기에서 절대적으로 적합합니다. 사실 사용자 정의 유효성 검사기가 필요하지 않습니다. 이것은 UI 영역뿐 아니라 핵심 도메인 비즈니스 로직입니다. 유효하지 않은 상태의 엔티티를 생성하는 것은 불가능합니다 (예를 들어 구성에 throwing-code를 넣어 유효성을 검사 할 수 있습니다. UI의 별도 자바 스크립트 유효성 검사는 사용자에게 즉각적인 피드백을 제공하는 데 도움이됩니다. –