사용자가 로컬 파일 시스템에서 선택한 이미지를 업로드하는 상황이 있습니다. 내보기의 내 양식에는 기본적으로 두 개의 제출 버튼이 있습니다. 하나는 양식을 정상적으로 제출하는 데 사용되며 모든 유효성 검사가 실행됩니다. 두 번째는 이미지 업로드 전용이며,이 경우 아직 유효성을 검사하고 싶지 않습니다.
'이미지 업로드'제출 버튼에 "style-name cancel"클래스 값을 제공하여 클라이언트 측 유효성 검사를 해제했습니다.
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
이제 다시 게시 할 때 모델에 UploadImageButton 속성이 있고이 버튼을 클릭하면이 속성이 채워집니다 (입력 이름이 속성과 일치 함). 이렇게하면 양식이 실제 제출 단추 또는 UploadImageButton에 의해 제출되었는지 알 수 있습니다.
내 질문은 이것이 ... ServerSide 유효성 검사를 어떻게 해제 할 수 있습니까? 사용자가이 버튼을 클릭 할 때 유효성 검사 요약 정보가 표시되는 것을 원하지 않습니다. 이것을 사용하여 커스텀 모델 오류를 추가 할 수 있다는 것을 알고 있습니다.
ModelState.AddModelError("{key}", "{error msg}");
모델 오류를 제거하는 방법을 찾고 있습니다. 이것이 가능한가?
편집하다:
내가 생각해 낸 것은 다음과 같습니다.
foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) {
//ModelState.Remove(key); //This was my solution before
ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak
}
Where(key => ModelState.Keys.Contains(key))
거야? ModelState.Keys의 각 키는 ModelState.Keys.Contains (key)가 true를 반환하기 때문에 Where 절이 중복 된 것 같습니다.