Onde posso encontrar a lista de erros que inviabilizam o ModelState? Não vi nenhuma propriedade de erros no objeto ModelState.
c#
asp.net-mvc
modelstate
Omu
fonte
fonte
Como você provavelmente está programando no Visual studio, é melhor aproveitar a possibilidade de usar pontos de interrupção para etapas tão fáceis de depuração (tendo uma idéia de qual é o problema no seu caso). Basta colocá-los em frente / no local em que você verifica ModelState.isValid e passa o mouse sobre o ModelState. Agora você pode navegar facilmente por todos os valores internos e ver qual erro causa o retorno isvalid false.
fonte
var asdf = ModelState.Values.Where(v => v.Errors.Count > 0);
pode ajudá-loCole o código abaixo no ActionResult do seu controlador e coloque o depurador neste momento.
fonte
ou itere com
fonte
Às vezes, um fichário lança uma exceção sem mensagem de erro. Você pode recuperar a exceção com o seguinte snippet para descobrir o que está errado:
(Geralmente, se o fichário estiver tentando converter seqüências de caracteres em tipos complexos, etc.)
fonte
Se você remover a verificação de ModelsState.IsValid e deixar que isso ocorra, se você copiar esta linha
((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors
e colar na seção de exibição no Visual Studio, ele fornecerá exatamente qual é o erro. Economiza muito tempo verificando onde está o erro.fonte
A propriedade ModelState no controlador é realmente um objeto ModelStateDictionary. Você pode percorrer as chaves no dicionário e usar o método IsValidField para verificar se esse campo específico é válido.
fonte
Como aconteceu comigo - isso também pode acontecer quando você adiciona uma propriedade necessária ao seu modelo sem atualizar seu formulário. Nesse caso, o ValidationSummary não listará a mensagem de erro.
fonte