猿问

JSON 数据未从控制器返回以查看?

我尝试使用 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 格式,由于公司规则,我隐藏了一些数据。

如何从控制器发送我的数据以查看?Data1是动态查看的,调试的时候发现了。请帮忙。


眼眸繁星
浏览 126回答 2
2回答

慕的地8271018

不知何故,我尝试了各种方法,这个方法解决了我的问题并且对我有用:[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);        }

互换的青春

您在成功方法中收到整个响应对象,所以我认为您应该有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 中实际收到的内容。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答