Usuario
Añadir mensaje personalizado a validation summary en el cliente con jquery

Pregunta
-
Hola gente:
Una pregunta de principiante. Tengo esta vista con un formulario (MVC 5), y quiero validar en el cliente un campo (me da igual el tipo de validación que sea), y añadir a validatiosummary un mensaje (el que quiera), algo asi como:
@model OficinaVirtual.Models.Documento
@{
ViewBag.Title = "NUEVO DOCUMENTO";
}@using (Html.BeginForm("Create","Documentos",FormMethod.Post, new { @id = "__Form", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })<div class="form-group">
@Html.LabelFor(model => model.nombreDocumento, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.nombreDocumento, new { htmlAttributes = new { @class = "form-control", @id="nombreDocumento" } })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Guardar Documento" class="btn btn-default" />
</div>
</div>
</div>
}@section Scripts {
@Scripts.Render("~/bundles/jqueryval")<script type="text/javascript">
$(function ()
{
$("#__Form").submit(function (event)
{
if ($("#nombreDocumento").prop("value") == "") {
//AÑADIR EL MENSAJE QUE QUIERA A ValidationSummary
event.preventDefault();
return;
}
});});
</script>
}No quiero en el controlador tener que usar ModelState.AddError......, ni usar requerimientos del modelo, quiero añadir un mensaje.
Alguien me echa una mano? Muchas gracias.
Saludos
Juanjo
Todas las respuestas
-
hola
pero porque lo quieres implementar de esa forma
porque no habilitas las validaciones en el cliente de las DataAnnotations y defiens esa propiedad como [Required]
ASP.NET MVC Client Side Validation
desde el cliente puedes validar si el form es valido
MVC 3 - checking if form is valid (has passed client side validation)
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Gracias por responder
Ese método que me indicas lo conocía, pero para mostrar un simple mensaje no me gustaría tener que usar este método y tampoco me gustaría usarlo en el controlador sobre todo si tengo un campo file.
A parte, eso era un simple ejemplo, pero en mi pagina uso EF y cada vez que actualizo el modelo, todos los mensajes, validaciones, etc. se borran y es una pesadez cada dos por tres estar escribiendo todo de nuevo.
Saludos
Juanjo
-
>>pero para mostrar un simple mensaje no me gustaría tener que usar este método
porque ? la idea es estandarizar la forma en como defines las validaciones
>>pero en mi pagina uso EF y cada vez que actualizo el modelo, todos los mensajes, validaciones, etc. se borran y es una pesadez cada dos por tres estar escribiendo todo de nuevo.
eso es porque usas la entidad como parte del modelo de la view, y eso esta mal
se supone que debes separar la entidad que usas en el view de la entidad de persistencia de EF
deberias crear una clase en la carpeta model de mvc con el sufijo ViewModel y mapear de la entidad de EF a la entidad viewmodel
podrias ayudarte con automapper para esta tarea
de esta forma si la entidad de EF se actualiza no afecta a la entidad de la view
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Gracias por responder.
1. Quiero hacer este tipo de validación, por lo siguiente: Imagina una vista a la cual le añades un campo que no esta en un modelo, por ejemplo, estas tablas:
- Categoria (id, nombre)
- Producto (id, idCategoria, nombre)
- lineaFactura (id,idproducto,nombre, precio)
Y quiero hacer una vista de líneaFactura, en esa vista quiero filtrar por categoría, categoría no esta relacionada con lineaFactura, pero resulta útil para filtrar que apareciera un desplegable con las categorías, y que cargaran los productos de la categoría seleccionada, para añadir el producto a una línea de la factura.
como digo es una ejemplo, no es exactamente lo que necesito, pero aquí como "validas" el campo categoría si no pertenece al modelo? en cambio si puedes añadir un mensaje por JavaScript "tienes que elegir una categoría...." pues es sencillo. Ya entiendo que no es una validación de los datos en si, pero me sirve como ejemplo.
Otro ejemplo, es que tengo un formulario (que no esta asociado a ninguna tabla) que coge unos datos (nombre, apellidos,etc) y genera un PDF. Esto lo he creado a partir de una vista vacia, entonces no puedo usar este método de validacion
2. Obviamente no llevo mucho con aspx, seguire tu recomendación y lo estudiare. Puedes decirme alguna web, tuto,... ando un poco perdido.
Saludos
Juanjo
- Editado Juanjo_16v jueves, 22 de octubre de 2015 15:11