Am I processing my save information through AJAX, sending parameters in a JSON string that I later get in the controller, how can I send error messages in the fields of the view that are wrong?
$('#btnGuardar').click(function () {
var ValorLongitudNombreCorto;
var ValorLongitudNombreLicitacion;
var NombreConfiguracion = $('#txtNombreConfiguracion').val();
var NombreLicitacion = $('#txtNombreLicitacion').val();
var PresentacionNombre = $('input:radio[name=PresentacionNombre]:checked').val();
var LongitudNombre = $('input:radio[name=LongitudNombre]:checked').val();
var CaracteresSeparacionPresentador = $('#DDLCarcteresSeparacionPresentador option:selected').text();
var CaracteresSeparacionCarga = $('#DDLCarcteresSeparacionCarga option:selected').text();
var ColorUnoCoinciden = $('#txtColorUnoCoinciden').val();
var ColorDosFaltaCapturar = $('#txtColorDosFaltaCapturar').val();
var ColorTresNoCoinciden = $('#txtColorTresNoCoinciden').val();
var ColorPrimerLugar = $('#txtColorPrimerLugar').val();
var ColorSegundoLugar = $('#txtColorSegundoLugar').val();
var ColorTercerLugar = $('#txtColorTercerLugar').val();
var ValorFormula = $('#DDLFormulas').val();
var TipoFuente = $('#DDLTipoFuente option:selected').text();
var TamanoFuente = $('#DDLTamanoFuente option:selected').text();
var ValorPaginacion = $('#txtPaginacion').val();
if (LongitudNombre == 'C') {
ValorLongitudNombreCorto = true;
} else {
ValorLongitudNombreCorto = false;
}
if (PresentacionNombre == 'Licitacion') {
ValorLongitudNombreLicitacion = true;
} else {
ValorLongitudNombreLicitacion = false;
}
var url = "http://localhost:6892/Validador/GuardarConfiguracion";
var data = new FormData();
var data = {
items: {
NombreConfiguracion: NombreConfiguracion
, NombreLicitacion: NombreLicitacion
, PresentacionLicitacionn: ValorLongitudNombreLicitacion
, NombresCortos: ValorLongitudNombreCorto
, CaracteresSeparacionPresentador: CaracteresSeparacionPresentador
, CaracteresSeparacionCarga: CaracteresSeparacionCarga
, ColorPropuestasCoinciden: ColorUnoCoinciden
, ColorPropuestasFaltaCapturar: ColorDosFaltaCapturar
, ColorPropuestasNoCoinciden: ColorTresNoCoinciden
, ColorPublicoPrimerLugar: ColorPrimerLugar
, ColorPublicoSegundoLugar: ColorSegundoLugar
, ColorPublicoTercerLugar: ColorTercerLugar
, IdFormula: ValorFormula
, TipoFuente: TipoFuente
, TamanoFuente: TamanoFuente
, ValorPaginacion: ValorPaginacion
}
};
$.ajax({
type: "Post",
url: url,
datatype: "json",
contentType: 'application/json;charset=utf-8',
processData: false,
data: JSON.stringify(data),
success: function (data) {
if (data.Success === true) {
alert("Se guardo la configuración exitosamente!");
window.location.href = '/Validador/ConfigurarSistema'
$('.ModalGuardadoConfiguracion').click();
}
else {
alert("Intentelo nuevamente!");
//$('.ModalNoGuardadoConfiguracion').click();
}
// alert(data.mensaje);
},
error: function (xhr, status, errorthrow) {
//alert(xhr.error);
//alert("error en proceso");
}
});
});
<div class="container">
<!---->
<div class="row">
<div class="text-left col-md-9">
<div class="container">
</div>
</div>
<div class="text-left col-md-3" style="padding-top:10px">
<div class="text-right">
<button id="btnGuardar" type="button" class="btn btn-primary">Guardar</button>
</div>
</div>
</div>
<!---->
<p></p>
<div class="panel panel-default sinMargin">
<div class="panel-body">
<div class="text-left col-md-12">
<label class="col-sm-12 control-label" for="email-03">Configuraciones:</label>
@Html.DropDownList("DDLConfiguraciones", ViewBag.MuestraConfiguraciones as SelectList, new { @class = "form-control", id = "DDLConfiguraciones" })
</div>
</div>
</div>
<div class="panel panel-default sinMargin">
<div class="panel-body">
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03">Nombre de la Configuración:</label>
@Html.TextBox("txtNombreConfiguracion", null, new { @class = "form-control", placeholder = "DEFAULT" })
</div>
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03">Nombre de la Licitación:</label>
@Html.TextBox("txtNombreLicitacion", null, new { @class = "form-control", placeholder = "" })
</div>
<div class="text-left col-md-9">
<div class="container">
</div>
</div>
<div class="text-left col-md-12">
<label class="col-sm-12 control-label" for="email-03" style="font-weight: normal;">Presentación de Nombre:</label>
<div class="col-md-6">
<label> @Html.RadioButton("PresentacionNombre", "Configuracion") <span><strong>Nombre Configuración</strong></span></label>
</div>
<div class="col-sm-6">
<label> @Html.RadioButton("PresentacionNombre", "Licitacion", new { @checked = "checked" }) <span><strong>Nombre Licitación</strong></span></label>
</div>
</div>
</div>
</div>
<!---->
<div class="panel panel-default sinMargin">
<div class="panel-body">
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03">Presentación de Licitantes:</label>
<br />
</div>
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03">Caracteres de Separación:</label>
<br />
</div>
<hr />
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03" style="font-weight: normal;">Presentación de Nombres:</label>
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03"></label>
<label> @Html.RadioButton("LongitudNombre", "C", new { @checked = "checked" }) <span><strong>Nombres Cortos</strong></span></label>
<br />
</div>
<div class="text-left col-md-6">
<label class="col-sm-12 control-label" for="email-03"></label>
<div class="col-sm-12">
<label> @Html.RadioButton("LongitudNombre", "L") <span><strong>Nombres Largos</strong></span></label>
</div>
<br />
</div>
</div>
<div class="text-left col-md-3">
<label class="col-sm-12 control-label" for="email-03" style="font-weight: normal;">Presentador:</label>
@Html.DropDownList("DDLCarcteresSeparacionPresentador", ViewBag.MuestraCaracteresPresentador as SelectList, new { @class = "form-control col-md-12" })
<br />
</div>
<div class="text-left col-md-3">
<label class="col-sm-12 control-label" for="email-03" style="font-weight: normal;">Carga:</label>
@Html.DropDownList("DDLCarcteresSeparacionCarga", ViewBag.MuestraCaracteresCarga as SelectList, new { @class = "form-control col-md-12" })
<br />
</div>
</div>
</div>
<!---->
<!---->
<div class="panel panel-default sinMargin">
<div class="panel-body">
<div class="text-left col-md-12">
<label class="col-sm-12 control-label" for="email-03">Colores:</label>
<br />
</div>
<hr />
<div class="row">
<div class="text-left col-md-12">
<label class="col-sm-12 control-label" for="email-03" style="font-weight: normal;">Validar propuestas:</label>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03"></label>
<label>Coinciden valores</label>
@Html.TextBox("txtColorUnoCoinciden", null, new { @class = "form-control" })
<br />
</div>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03"></label>
<label>Falta capturar una propuesta</label>
@Html.TextBox("txtColorDosFaltaCapturar", null, new { @class = "form-control" })
<br />
</div>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03"></label>
<label>No coinciden valores</label>
@Html.TextBox("txtColorTresNoCoinciden", null, new { @class = "form-control" })
<br />
</div>
</div>
</div>
<hr />
<div class="row">
<div class="text-left col-md-12">
<label class="col-sm-12 control-label" for="email-03" style="font-weight: normal;">Pantallas al público:</label>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03"></label>
<label>Primer lugar</label>
@Html.TextBox("txtColorPrimerLugar", null, new { @class = "form-control" })
<br />
</div>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03"></label>
<label>Segundo lugar</label>
@Html.TextBox("txtColorSegundoLugar", null, new { @class = "form-control" })
<br />
</div>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03"></label>
<label>Tercer lugar</label>
@Html.TextBox("txtColorTercerLugar", null, new { @class = "form-control" })
<br />
</div>
</div>
</div>
</div>
</div>
<!---->
<!---->
<div class="panel panel-default sinMargin">
<div class="panel-body">
<div class="text-left col-md-10">
<label class="col-sm-12 control-label" for="email-03">Formula:</label>
@Html.DropDownList("DDLFormulas", ViewBag.MuestraFormulas as SelectList, new { @class = "form-control", id = "DDLFormulas" })
</div>
<!--<div class="row"> -->
<div class="text-center col-md-2">
<label class="col-sm-12 control-label" for="email-03"> </label>
@Html.ActionLink("Crear Formula", "AgregarFormula", "Validador", new { @class = "btn btn-success btn-sm" })
</div>
<!--</div> -->
</div>
</div>
<!---->
<!---->
<div class="panel panel-default sinMargin">
<div class="panel-body">
<div class="text-left col-md-12">
<label class="col-sm-12 control-label" for="email-03">Letra y paginación:</label>
<br />
</div>
<div class="row">
<div class="text-center col-md-12">
<div id="test">
Ejemplo de texto
</div>
<p></p>
<hr />
</div>
</div>
<div class="text-left col-md-4">
<label class="col-sm-12 control-label" for="email-03">Tipo de fuente:</label>
@Html.DropDownList("DDLTipoFuente", ViewBag.TiposFuente as SelectList, new { @class = "form-control col-md-11", id = "DDLTipoFuente", name = "DDLTipoFuente" })
@*Html.DropDownListFor(x => x.TiposLetra, (SelectList)ViewBag.TiposFuente)*@
<br />
</div>
<div class="text-center col-md-4">
<label class="col-sm-12 control-label" for="email-03">Tamaño de fuente:</label>
<div class="col-md-4 text-center">
</div>
<div class="col-md-4 text-center">
@Html.DropDownList("DDLTamanoFuente", ViewBag.TamaniosFuente as SelectList, new { @class = "form-control col-md-11", id = "DDLTamanoFuente", name = "DDLTamanoFuente" })
</div>
<br />
</div>
<div class="text-center col-md-4">
<label class="col-sm-12 control-label" for="email-03">Paginación:</label>
<div class="col-md-4 text-center">
</div>
<div class="col-md-4 text-center">
@Html.TextBox("txtPaginacion", null, new { @class = "form-control" })
</div>
<br />
</div>
</div>
</div>
<div class="row col-md-6 col-md-offset-3 text-center">
<table>
<tr>
<td style="color:white">.</td>
</tr>
</table>
</div>
</div>
Controller Method
public ActionResult GuardarConfiguracion(entConfiguracion items)
{
/*Guadar formulario en tabla ConfigurarSistema*/
//int? FormulaSeleccionada,
string NombreConfiguracion = items.NombreConfiguracion;
string NombreLicitacion = items.NombreLicitacion;
bool ValorLongitudNombreLicitacion = Convert.ToBoolean(items.PresentacionLicitacionn);
bool ValorLongitudNombreCorto = Convert.ToBoolean(items.NombresCortos);
string CaracteresSeparacionPresentador = items.CaracteresSeparacionPresentador;
string CaracteresSeparacionCarga = items.CaracteresSeparacionCarga;
string ColorUnoCoinciden = items.ColorPropuestasCoinciden;
string ColorDosFaltaCapturar = items.ColorPropuestasFaltaCapturar;
string ColorTresNoCoinciden = items.ColorPropuestasNoCoinciden;
string ColorPrimerLugar = items.ColorPublicoPrimerLugar;
string ColorSegundoLugar = items.ColorPublicoSegundoLugar;
string ColorTercerLugar = items.ColorPublicoTercerLugar;
int ValorFormula = items.IdFormula;
string TipoFuente = items.TipoFuente;
int TamanioFuente = items.TamanoFuente;
int ValorPaginacion = items.ValorPaginacion;
bool success = false;
if (ModelState.IsValid)
{
try
{
SqlParameter[] prmsConfiguracion = new SqlParameter[18];
prmsConfiguracion[0] = new SqlParameter("@NombreConfiguracion", SqlDbType.VarChar);
prmsConfiguracion[0].Value = NombreConfiguracion;
prmsConfiguracion[1] = new SqlParameter("@NombreLicitacion", SqlDbType.VarChar);
prmsConfiguracion[1].Value = NombreLicitacion;
prmsConfiguracion[2] = new SqlParameter("@PresentacionNombreLicitacion", SqlDbType.Bit);
prmsConfiguracion[2].Value = ValorLongitudNombreLicitacion;
prmsConfiguracion[3] = new SqlParameter("@PresentacionNombresCortos", SqlDbType.Bit);
prmsConfiguracion[3].Value = ValorLongitudNombreCorto;
prmsConfiguracion[4] = new SqlParameter("@CaracteresSeparacionPresentador", SqlDbType.VarChar);
prmsConfiguracion[4].Value = CaracteresSeparacionPresentador;
prmsConfiguracion[5] = new SqlParameter("@CaracteresSeparacionCarga", SqlDbType.VarChar);
prmsConfiguracion[5].Value = CaracteresSeparacionCarga;
prmsConfiguracion[6] = new SqlParameter("@ColorValidarPropuestasCoinciden", SqlDbType.VarChar);
prmsConfiguracion[6].Value = ColorUnoCoinciden;
prmsConfiguracion[7] = new SqlParameter("@ColorValidarPropuestasFaltaCapturar", SqlDbType.VarChar);
prmsConfiguracion[7].Value = ColorDosFaltaCapturar;
prmsConfiguracion[8] = new SqlParameter("@ColorValidarPropuestasNoCoinciden", SqlDbType.VarChar);
prmsConfiguracion[8].Value = ColorTresNoCoinciden;
prmsConfiguracion[9] = new SqlParameter("@ColorPantallaPublicoLugar1", SqlDbType.VarChar);
prmsConfiguracion[9].Value = ColorPrimerLugar;
prmsConfiguracion[10] = new SqlParameter("@ColorPantallaPublicoLugar2", SqlDbType.VarChar);
prmsConfiguracion[10].Value = ColorSegundoLugar;
prmsConfiguracion[11] = new SqlParameter("@ColorPantallaPublicoLugar3", SqlDbType.VarChar);
prmsConfiguracion[11].Value = ColorTercerLugar;
prmsConfiguracion[12] = new SqlParameter("@IdFormula", SqlDbType.Int);
prmsConfiguracion[12].Value = ValorFormula;
prmsConfiguracion[13] = new SqlParameter("@TipoFuente", SqlDbType.VarChar);
prmsConfiguracion[13].Value = TipoFuente;
prmsConfiguracion[14] = new SqlParameter("@TamanoFuente", SqlDbType.Int);
prmsConfiguracion[14].Value = TamanioFuente;
prmsConfiguracion[15] = new SqlParameter("@ValorPaginacion", SqlDbType.Int);
prmsConfiguracion[15].Value = ValorPaginacion;
prmsConfiguracion[16] = new SqlParameter("@Activo", SqlDbType.Bit);
prmsConfiguracion[16].Value = 1;
prmsConfiguracion[17] = new SqlParameter("@Predeterminado", SqlDbType.Bit);
prmsConfiguracion[17].Value = 1;
object resultadoFormula = DB.EjecutarEscalar("SP_GuardarConfiguracion", prmsConfiguracion);
success = true;
return Json(new { Success = success, Mensaje = "OK" });
}
catch (Exception ex)
{
return Json(new { Success = success, Mensaje = "hubo un error" });
}
//return Json(new { Ok = true });
}
return Json(new { Success = success, Mensaje = "hubo un error" });
/*Guadar formulario en tabla ConfigurarSistema*/
}
Model
public class entConfiguracion
{
/*Propiedades Configuración*/
public int IdConfiguracion { get; set; }
[Required]
public string NombreConfiguracion { get; set; }
public string NombreLicitacion { get; set; }
public bool PresentacionLicitacionn { get; set; }
public bool NombresCortos { get; set; }
public string CaracteresSeparacionPresentador { get; set; }
public string CaracteresSeparacionCarga { get; set; }
[Required]
public string ColorPropuestasCoinciden { get; set; }
[Required]
public string ColorPropuestasFaltaCapturar { get; set; }
[Required]
public string ColorPropuestasNoCoinciden { get; set; }
[Required]
public string ColorPublicoPrimerLugar { get; set; }
[Required]
public string ColorPublicoSegundoLugar { get; set; }
[Required]
public string ColorPublicoTercerLugar { get; set; }
public int IdFormula { get; set; }
public string TipoFuente { get; set; }
public int TamanoFuente { get; set; }
public int ValorPaginacion { get; set; }
}