ModelState를 유효하지 않게 만드는 오류 목록은 어디에서 찾을 수 있습니까? ModelState 객체에 오류 속성이 표시되지 않았습니다.ModelState.IsValid == false, 이유가 무엇입니까?
답변
"는 0 오류 및 IsValid == 거짓이 있다고 할 수있다"는 될 수 없다처럼 이제 https://github.com/Microsoft/referencesource/blob/master/System.Web/ModelBinding/ModelStateDictionary.cs#L37-L41
public bool IsValid {
get {
return Values.All(modelState => modelState.Errors.Count == 0);
}
}
에서 여기 MVC 소스 코드, 그것은 보인다. ASP.NET MVC v1 용입니다.
컨트롤러의 ModelState 속성은 실제로 ModelStateDictionary 개체입니다. 사전의 키를 반복하고 IsValidField 메서드를 사용하여 특정 필드가 유효한지 확인할 수 있습니다. 당신은 아마 당신이 더 문제가 무엇인지 생각을 (예 : 쉽게 디버깅 단계를 중단 점을 사용하여 얻을 수있는 가능성을 활용할 것 Visual Studio에서 프로그래밍되기 때문에
foreach (ModelState state in ViewData.ModelState.Values.Where(x => x.Errors.Count > 0))
{
}
bool hasErrors = ViewData.ModelState.Values.Any(x => x.Errors.Count > 1);
또는 반복 귀하의 경우처럼). ModelState.isValid를 확인하고 ModelState 위로 마우스를 올리면됩니다. 이제 내부의 모든 값을 쉽게 탐색하고 isvalid가 false를 반환하는 원인을 확인할 수 있습니다. 약
모든 값에 0 오류가 있고 모델 상태가 여전히 유효하지 않을 수 있습니까? – Omu
modelstate에는 키 "Property"와 관련 오류가 사전에 있습니다. 오류 메시지는 공백 일 수 있지만 오류 계수는 올바르지 않은 특성 계수를 반영합니다. ModelStateDictionary.AddModelError 메서드는 키를 가져오고 Exception 또는 error String을 사용하기 때문에; 모델 오류를 추가해야합니다. –
때때로 바인더가 오류 메시지없이 예외를 throw합니다. 당신은 찾아 다음 코드로 예외를 검색 할 수 있습니다 무슨 잘못 :
내게 일어난 단지 것처럼
if (!ModelState.IsValid)
{
var errors = ModelState.SelectMany(x => x.Value.Errors.Select(z => z.Exception));
// Breakpoint, Log or examine the list with Exceptions.
}
이 코드는 나에게 매우 도움이되었지만 각각의 .Message가 "개체 참조가 개체의 인스턴스로 설정되지 않은"결과를 가져 오기 위해 오류 (예외)를 반복합니다. z.Exception을 z.ErrorMessage로 변경하면 오류 메시지를 표시 할 수있었습니다. – StackOverflowUser
(바인더는 복합 형 등으로 문자열을 변환하려고 종종 경우) -이 양식을 업데이트하지 않고도 필요한 속성을 모델에 추가 할 때도 발생할 수 있습니다. 이 경우 ValidationSummary는 오류 메시지를 나열하지 않습니다.
var errors = ModelState
.Where(x => x.Value.Errors.Count > 0)
.Select(x => new { x.Key, x.Value.Errors })
.ToArray();
- 1. `ModelState.IsValid == false`이면,`View()`또는`View (movie)`를 돌려 주어야합니까?
- 2. ModelState.IsValid 또는 Model.IsValid?
- 3. ModelState.IsValid 오류가 발생했습니다.
- 4. ModelState.IsValid 속성을 재정의하십시오.
- 5. 보이지 않는 컨트롤에 대한 ModelState.IsValid
- 6. ASP.NET MVC ModelState.IsValid 나던 작업
- 7. if (! this) {false false; }
- 8. SqlDateTime.MinValue는 1753입니다. 이유가 무엇입니까?
- 9. isLargeArc가 필요한 이유가 무엇입니까?
- 10. Activator.CreateInstance를 호출하는 이유가 무엇입니까?
- 11. NSRangeException - 이유가 무엇입니까?
- 12. NSURLConnection 누수 - 이유가 무엇입니까?
- 13. QAbstractItemModel.parent(), 이유가 무엇입니까?
- 14. 목록에 추가되는 이유가 무엇입니까?
- 15. XML false vs (string) false
- 16. 이유가
- 17. [Display (AutoGenerateField = false)] 및 [HiddenInput (DisplayValue = false)]이있는 이유는 무엇입니까?
- 18. JS에서 isNaN (null) == false 이유는 무엇입니까?
- 19. asp.net mvc : TryUpdateModel 반환 값 또는 ModelState.IsValid?
- 20. MVC 3 ModelState.IsValid with Multiple ViewModels
- 21. TIME_WAIT 연결이 없습니다. 이유가 무엇입니까?
- 22. 빈 문자열 + 변수 : 이유가 무엇입니까?
- 23. dispatchDraw가 너무 많습니다. 이유가 무엇입니까?
- 24. iPhone이이 라인에서 누출되었습니다. 이유가 무엇입니까?
- 25. 캐시가 플러시되고 있는데, 이유가 무엇입니까?
- 26. 버튼이있을 때 div가 숨겨지지 않습니다. 이유가 무엇입니까?
- 27. false false onclick 앵커가 제대로 작동하지 않습니다.
- 28. JPA가 데이터베이스에 삽입하지 마십시오. 이유가 무엇입니까?
- 29. 맞춤 이벤트가 캡처되지 않음 - 이유가 무엇입니까?
- 30. ASP.NET MVC - ModelState.IsValid가 false 인 경우 무시하는 방법은 무엇입니까?
그것은 나에게 그것은, 그것은 무언가 잘못 Values.All 것 같습니다 (modelState => modelState.Errors.Count == 0)? – Omu
오류는 메시지 또는 예외 일 수 있습니다. 예를 들어 Html.ValidationSummary는 예외를 표시하지 않습니다 (보안상의 이유로). 어쩌면 그게 왜 당신이 실수를 보지 못했을까요? 오류가 없는지 어떻게 확인합니까? – queen3
ModelState.IsValid는 거짓을 말합니다 – Omu