Pregunta

Estoy utilizando la biblioteca de validación de MVC texto del enlace . Elegí esta biblioteca porque yo también estoy usando .NetTiers que genera toda la validación de atributos utilizando MS Enterprise Library de validación bloques.

Funciona bien, excepto que ese modelo de unión está validando automáticamente el objeto y llenar el resumen de validación. Creo que esta en la conducta normal.

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

La biblioteca de validación también tiene un método que se documenta como sigue:

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

Esto también funciona bien.

Mi problema es que cuando se utiliza el método de la biblioteca de validación que duplica los mensajes de error. Cuando simplemente usando el modelo de unión a los mensajes de error aparecen extraña. Los errores tienen el nombre de la propiedad en el mensaje.

Por lo tanto, creo que debería, ya sea que tenga que formatear mensajes de error o modelo de unión desactivar por completo la unión del modelo.

Cualquier recomendación, ayuda?

Gracias.

¿Fue útil?

Solución 2

He encontrado la respuesta a por qué mi ModelState no era válida. Los elementos de formulario no se corresponden con el modelo, que es la única manera de que el ModelState no sería válida inmediatamente.

Si encuentro más detalles Voy a actualizar este post.

Otros consejos

Tener que tratar:

    /*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);
    }

y comprobar si v es cierto que debe ser. Si bien es cierto entonces obj.Validate<NetTiersObject>(); está haciendo algo mal porque es el único que pueblan los errores duplicados.

  

Mi problema es que cuando se utiliza el   el método de biblioteca de validación se   duplica los mensajes de error. Cuando   simplemente utilizando el modelo de unión del error   aparecen mensajes extraños. Los errores   tener el nombre de la propiedad en el mensaje.

Su es raro porque la modelBinding no debe rellenar los errores del modelo, al menos si no están utilizando un modelo personalizado de unión o tratar de salvar a la base de datos sin validar campos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top