无法在C#和ASP.NET MVC中从JsonResult检索数据

时间:2019-02-04 20:10:31

标签: c# json asp.net-mvc

我正在使用ASP.NET MVC C#应用程序,并且需要在视图中单击特定按钮时恢复对象(模型视图)。我设法将值发送到JsonResult控制器,但是我什么也没得到。

这是我的剃刀视图中按钮的代码:

$("#btn-buscar").click(function (e) {
    $.ajax({
             type: "POST",
             url: '@Url.Action(actionName: "BISSS_Modificacion", controllerName: "Home")',
             datatype: "Json",
             //contentType: "application/json; charset=utf-8",
             data: { ISSS: $("#idISSSBuscar").val()},
             success: function (data) {
                 alert(data);
                 alert("todo bien  " + data.Nombres);
             }
           });
        });

这是JsonResult控制器,它可以工作,因为它检索信息

public JsonResult BISSS_Modificacion(string ISSS)
{
    Entity BusquedaEmpleado = new Entity();

    // here I retrieve the info from a Web API
    if (respuestaBusqueda.respuesta)
    {
        BusquedaEmpleado.NombreM = respuestaBusqueda.nombres;
        BusquedaEmpleado.ApellidoM = respuestaBusqueda.apellidos;
        BusquedaEmpleado.DUIM = respuestaBusqueda.dui;
        BusquedaEmpleado.ISSSM = respuestaBusqueda.numero_isss;
        BusquedaEmpleado.CargoM = respuestaBusqueda.cargo_participante;
        BusquedaEmpleado.SexoM = respuestaBusqueda.genero;
        BusquedaEmpleado.NivelM = respuestaBusqueda.nivel_puesto;
        BusquedaEmpleado.grupoM = Convert.ToInt32(respuestaBusqueda.grupo);

        return Json(new { BusquedaEmpleado }, JsonRequestBehavior.AllowGet);
    }                
}

但是要在警报窗口中显示对象-单击按钮代码中的第一个警报-这就是我得到的:

enter image description here

如果我要显示一个特定值-单击按钮代码中的第二个警报-这就是我得到的:

enter image description here

如果我使用console.log来显示数据,这就是我得到的:

enter image description here

你能告诉我我在做什么错吗?

如果我使用alert(JSON.stringify(data)),则会得到此信息,这是我需要的信息,因此看起来我获得了正确的信息(有一些空值,但还可以):

enter image description here

并且您可以看到Apellido的属性是ApellidoM,但是如果我想显示警报窗口中的值仍未定义-alert(“ todo bien” + JSON.stringify(data.ApellidoM));

1 个答案:

答案 0 :(得分:0)

基于您发布的json字符串化的结果,看起来您只需要使用JSON对象上实际存在的属性的名称即可。

alert("todo bien  " + data.NombreM); // todo bien  JOSE ANGER