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 utiliza para enviar el formulario normalmente y se ejecuta toda la validación. El segundo es solo para subir la imagen, en cuyo caso todavía no quiero validar.
Logré desactivar la validación del lado del cliente dando a mi botón de envío 'Subir imagen' un valor de clase de "cancelación de nombre de estilo", así que
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
Ahora, cuando publico, mi modelo tiene una propiedad UploadImageButton, cuando se hace clic en este botón, se completa esta propiedad (el nombre de la entrada coincide con la propiedad). De esta manera, sé si el formulario fue enviado por mi verdadero botón Enviar o por UploadImageButton.
Mi pregunta es la siguiente ... ¿Cómo puedo desactivar la validación del lado del servidor? No quiero que aparezca la información del Resumen de validación cuando el usuario haga clic en este botón. Sé que puede agregar errores de modelo personalizados usando este
ModelState.AddModelError("{key}", "{error msg}");
Estoy buscando un medio para eliminar errores de modelo. es posible?
EDITAR:
Esto es lo que se me 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
}
Where(key => ModelState.Keys.Contains(key))
? Parece que la cláusula Where es redundante, porque cada clave en ModelState.Keys tendrá su ModelState.Keys.Contains (clave) devuelto verdadero.