Principales respuestas
Pasar el mensaje resultado de un Jsonresult a una alert de Respuesta en la View

Pregunta
-
Buenos Dias Queridos Colegas:
Tengo una pequeña consulta
Deseo que pasar un mensaje de mi Jsonresult a una alert en la View, agradezco su amables aportes
este es mi JsonResult
[HttpPost]
public JsonResult SaveCuentas([Bind(Exclude = "Id")] Cuenta objCuen)
{
string msg;
objCuen.Idtcuen = Convert.ToInt32(Request.Form["idticuent"]);
objCuen.Idcuenta = Convert.ToInt32(Request.Form["idcuenta"]);
objCuen.Codigo_Empresa = Convert.ToInt32(Session["cod_empr"]);
objCuen.Nivelcuen = Convert.ToInt32(Request.Form["idnivel"]);
objCuen.idnat = Convert.ToInt32(Request.Form["idtnatu"]);
objCuen.idimp = Convert.ToInt32(Request.Form["idimp"]);
objCuen.Nombre_cuenta = Request.Form["nomcuenta"].ToString();
objCuen.Maneja_tercero = Convert.ToBoolean(Request.Form["manejter"]);
objCuen.Maneja_CC = Convert.ToBoolean(Request.Form["manejaCC"]);
objCuen.Mostrar_cuenta = Convert.ToBoolean(Request.Form["mostrarCu"]);
objCuen.Estado = true;
objCuen.Creado_Por = Session["Session_Usuario"].ToString().Trim();
objCuen.Fecha_Creado = DateTime.Now;
_datos.Cuentas.InsertOnSubmit(objCuen);
try
{
_datos.SubmitChanges();
msg = "Cuenta Creada con Exito";
}
catch
{
msg = "La cuenta que intenta crear ya Existe para esta Empresa";
}
Session["msg"] = msg;
return Json(msg, JsonRequestBehavior.AllowGet);
}y este mi ajax que previamente lo invoca y al cual necesito que el momento de realizar la accion de gurdado me pasa el msg a un alert, este es mi script que invoca previamente mi metodo de guardado
<script>
function InvocarSCuenta(){
$.ajax({
type: "POST",
traditional: true,
async: false,
cache: false,
url: '@Url.Action("SaveCuentas","Operativo")',
context: document.body,
data: {
idticuent: $("#idticuent").val(),
idcuenta: $("#idcuenta").val(),
idnivel: $("#idnivel").val(),
idtnatu: $("#idtnatu").val(),
idimp: $("#idimp").val(),
nomcuenta: $("#nomcuenta").val(),
manejter: $("#manejter").is(":checked"),
manejaCC: $("#manejaCC").is(":checked"),
mostrarCu: $("#mostrarCu").is(":checked")
},
success: function (result) {
$("#resultado").html('');
alert(result.msg)
},
error: function (xhr) {
//debugger;
console.log(xhr.responseText);
alert(result.msg)
}
});
}
</script>
Carlos Alberto Hern&amp;amp;amp;#225;ndez R. CEO -Xtreme Business Solutions Movil: 3102334026 Bogota- Colombia
Respuestas
-
Mucha gente cree que los métodos de acción tienen que devolver necesariamente un objeto que herede de ActionResult, como por ejemplo un JsonResult. Sin embargo, también pueden devolver tipos simples, como por ejemplo un string. Y para este caso concreto, en el que solo devuelves un string, es superfluo serializar ese string dentro de un Json para luego tenerlo que deserializar otra vez antes de mostrar el alert. Puedes sencillamente devolver el string:
[HttpPost]
public string SaveCuentas([Bind(Exclude = "Id")] Cuenta objCuen)
{
string msg;
.....
msg = ...;
.....
return msg;
}Y después lo pasas directo al alert:
success: function(result) {
.....
alert(result);
},- Marcado como respuesta Carlos Alberto Hernandez R domingo, 2 de abril de 2017 17:10
Todas las respuestas
-
No entiendo la duda que presentas, lo que mencionas en el post es lo que hace el código que adjuntas, ¿obtienes algún error?, aunque falta el símbolo de punto y coma al final de la instrucción creo que no es impedimento para mostrar el mensaje que envía el método SaveCuenta().
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
Mucha gente cree que los métodos de acción tienen que devolver necesariamente un objeto que herede de ActionResult, como por ejemplo un JsonResult. Sin embargo, también pueden devolver tipos simples, como por ejemplo un string. Y para este caso concreto, en el que solo devuelves un string, es superfluo serializar ese string dentro de un Json para luego tenerlo que deserializar otra vez antes de mostrar el alert. Puedes sencillamente devolver el string:
[HttpPost]
public string SaveCuentas([Bind(Exclude = "Id")] Cuenta objCuen)
{
string msg;
.....
msg = ...;
.....
return msg;
}Y después lo pasas directo al alert:
success: function(result) {
.....
alert(result);
},- Marcado como respuesta Carlos Alberto Hernandez R domingo, 2 de abril de 2017 17:10
-