Tengo una situación en la que estoy cargando una imagen que el usuario ha seleccionado de su sistema de archivos local. Mi formulario en mi opinión, básicamente tiene dos botones de envío. Uno se usa para enviar el formulario normalmente y se ejecuta toda la validación. El segundo es solo para cargar la imagen, en cuyo caso no quiero validar aún.MVC3 Eliminar errores de ModelState
me las arreglé para desactivar la validación del lado del cliente, dando mi 'Subir imagen' botón de enviar un valor a la clase de "style-name cancelar", por lo
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
Ahora, cuando envío de vuelta, mi modelo tiene una propiedad UploadImageButton, cuando se hace clic en este botón, rellena esta propiedad (el nombre de la entrada coincide con la propiedad). De esta forma, sé si el formulario fue enviado por mi verdadero botón Enviar o por UploadImageButton.
Mi pregunta es esta ... ¿Cómo puedo desactivar la validación de ServerSide? No deseo que aparezca la información del Resumen de validación cuando el usuario haga clic en este botón. Sé que usted puede añadir errores en el modelo personalizado utilizando este
Busco un medio para eliminar los errores del modelo. es posible?
EDIT:
Esto es lo que ocurrió:
foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) {
//ModelState.Remove(key); //This was my solution before
ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak
}
¿por qué haces un 'Donde (clave => ModelState.Keys.. Contiene (clave))? Parece que la cláusula Where es redundante, porque cada clave en ModelState.Keys tendrá su ModelState.Keys.Contains (key) return true. –
He actualizado la pregunta y el texto, para usar el método más corto en el ModelState.ContainsKey, aunque está equivocado en su suposición. Estos están haciendo lo mismo. –
Lo siento, es posible que haya explicado mal o malinterpretado su respuesta. Tiene razón en que 'ModelState.ContainsKey (clave)' y 'ModelState.Contains (key)' hacen lo mismo, pero mi punto es que todos los valores en 'ModelState.Keys.ToList()' serán por naturaleza contenidos en 'ModelState', por lo que toda la cláusula' Where' es redundante y ralentizará el rendimiento. Una cosa menor, sin embargo. –