2010-04-10 22 views
5

Tengo un atributo de validación de nivel de clase personalizado, que hereda de ValidationAttribute, en mi modelo.ASP.NET MVC Anotación de datos personalizada de nivel de clase y claves ModelState

¿Cómo es que no registra una clave en el ModelState cuando IsValid es falso? Puedo ver el mensaje de error en la colección ModelState.Values, pero la colección ModelState.Keys solo muestra una cadena vacía "". ¿Puedo proporcionarle una clave, presumiblemente porque no está asignada a una propiedad?

Quiero ser capaz de utilizar ModelState.Remove en mi controlador para eliminar este error en una determinada condición, pero no tengo ninguna clave!

¿Alguna idea?

+0

Tengo el mismo problema, necesitaba verificar varios valores, así que me enojé con un atributo personalizado de nivel de clase pero no obtuve nada de nuevo en la vista que muestre que tengo un error. Me da la impresión de que el uso de anotaciones de datos para la validación del modelo es, en el mejor de los casos, carente de brillo. – JBeckton

+0

Esta pregunta http://stackoverflow.com/questions/4266632/unable-to-set-membernames-from-custom-validation-attribute-in-mvc2 tiene el mismo problema y una solución también ayuda a hope tat. – Vipresh

Respuesta

0

Qué tal si se comprueba ModelError.Exception en IModelBinder.OnModelUpdated.

Cuestiones relacionadas