无法从控制器返回JSON数据以进行查看吗?

时间:2019-09-12 06:24:36

标签: javascript json ajax asp.net-mvc

我试图从控制器发送数据以使用JSON进行查看。一方面,它运行良好,但另一方面,它却无法正常工作。当我调试时,我发现数据是从控制器传递的,但没有在视图中返回。

这是我的代码

[HttpGet]
        public ActionResult LoadEmployee(string E_Id)
        {
           var _Employee= ApplicationManager.GetEmployee(E_Id);
            if (_Employee != null)
            {
                ViewBag.EmployeeName = _Employee.User != null ? _Employee.User.LoginName : string.Empty;
                ViewBag.Department = _Employee.Department != null ? _Employee.Department : string.Empty;
                ViewBag.JobTitle = _Employee.JobTitle != null ? _Employee.JobTitle : string.Empty;
                ViewBag.RegNo = ReportManager.GetEmployee(E_Id);
                ViewBag.employeeName = ReportManager.GetEmployeeFullName(E_Id);
            }
            var data1 = ViewBag;
            return Json(data1, JsonRequestBehavior.AllowGet);
        }

在视图中:

function Select() {
        var t = $('#tblEmployee').DataTable();
        var rowData = t.rows('.row_selected').data();
        var E_Id = rowData["0"].EmployeeId;

        var EmployeeDetailsIdUrl = '@Url.Action("LoadEmployee")';
             $.ajax({  
                type: "GET",  
                url: EmployeeDetailsIdUrl,  
                contentType: "application/json; charset=utf-8",  
                data: { "E_Id": E_Id },  
                datatype: "json",  
                 success: function (data1) {  
                     $('#modal-info').modal('hide');
                     $('#txtEmployeeId').val(E_Id);
                     $('#txtEmployeeName').val(data1.EmployeeName);
                     $('#txtRegNo').val(data1.RegNo);
                     $('#txtJobTitle').val(data1.JobTitle);
                     $('#txtDepartment').val(data1.Department);

                  },  
                error: function () {  
                    alert("Dynamic content load failed.");  
                }  
            });  
          }

FYR,由于公司规定,我添加了data1格式,因此我隐藏了一些数据。

enter image description here

如何从控制器发送数据以进行查看? Data1在动态视图中,调试时我找到了它。请帮助。

2 个答案:

答案 0 :(得分:0)

您通过成功方法收到了整个响应对象,所以我认为您应该拥有

success: function (response) {  
                 $('#modal-info').modal('hide');
                 $('#txtEmployeeId').val(E_Id);
                 $('#txtEmployeeName').val(response.data1.EmployeeName);
                 $('#txtRegNo').val(response.data1.RegNo);
                 $('#txtJobTitle').val(response.data1.JobTitle);
                 $('#txtDepartment').val(response.data1.Department);

您可以尝试在浏览器中使用F12检查在UI中实际收到的内容。

答案 1 :(得分:0)

我以某种方式尝试了各种方法,这解决了我的问题,并且对我有用:

[HttpGet]
        public ActionResult LoadEmployeeDetails(string E_Id)
        {

             var _Employee= ApplicationManager.GetEmployee(E_Id);
            var data1= new
            {
                 EmployeeName = _PREmployeeSalary.User != null ? _PREmployeeSalary.User.LoginName : string.Empty,
                Department = _PREmployeeSalary.Department != null ? _PREmployeeSalary.Department : string.Empty,
                JobTitle = _PREmployeeSalary.JobTitle != null ? _PREmployeeSalary.JobTitle : string.Empty,
                RegNo = DailyLeaveReportManager.GetEmployee(E_Id),
                employeeName = DailyLeaveReportManager.GetEmployeeFullName(E_Id)
            };
             return Json(data1, JsonRequestBehavior.AllowGet);
        }