Pergunta

Eu estou usando a biblioteca de validação MVC de link de texto . Eu escolhi esta biblioteca porque eu também estou usando .NetTiers que gera toda a atributos de validação usando o MS Enterprise Library Validation Blocks.

Ele funciona muito bem, exceto que a ligação que o modelo é automaticamente validar o objeto e preencher o resumo de validação. Eu acredito que esta no comportamento normal.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register([Bind()]NetTiersObject obj)
{
    return View();
}

A biblioteca de validação também tem um método que está documentado da seguinte forma:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register([Bind()]NetTiersObject obj)
{
    try
    {
        obj.Validate<NetTiersObject>();
    }
    catch (EntityValidationException ex)
    {
        ViewData.ModelState.PopulateWithErrors(ex);
    }
    return View();
}

Isso também funciona bem.

Meu problema é que quando se utiliza o método da biblioteca de validação que duplica as mensagens de erro. Quando apenas usando o modelo de ligação as mensagens de erro estranha. Os erros têm o nome da propriedade na mensagem.

Então, eu acho que deveria qualquer necessidade de formatar o modelo de ligação mensagens de erro ou desativar modelo de ligação completo.

Qualquer recomendação, ajuda?

Graças.

Foi útil?

Solução 2

Eu encontrei a resposta para por que o meu ModelState era inválido. Os elementos do formulário não corresponder-se com o modelo, que é a única maneira que o ModelState seria inválida imediatamente.

Se eu encontrar mais detalhes Vou atualizar este post.

Outras dicas

você

Tenha tentar:

    /*At the Point the ModelState should be Valid(TRUE)
      because we still didn't enforce any validations */
    var v = ModelState.IsValid;

try
    {
        obj.Validate<NetTiersObject>();
    }
    catch (EntityValidationException ex)
    {
        ViewData.ModelState.PopulateWithErrors(ex);
    }

e verificar se v for True, ele deve ser. Se é verdade obj.Validate<NetTiersObject>(); então está fazendo algo errado, porque é a única que povoam os erros duplicados.

Meu problema é que quando se utiliza o que o método de biblioteca de validação duplica as mensagens de erro. Quando apenas usando a ligação do erro de modelo mensagens parecer estranho. os erros tem o nome da propriedade na mensagem.

A sua é estranho porque o ModelBinding deve erros modelo não preencher, pelo menos se você não estiver usando um modelo de ligação personalizada ou tentando gravar a DB sem validar campos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top