Привет, у меня есть простой actinReault, который возвращает jsonResult. Следующий метод.jqGrid не загружает данные
[HttpPost]
public JsonResult AllEmployees()
{
EmployeeService employeeService = new EmployeeService();
List<EmployeeViewModel> employeesViewMod = employeeService.allEmployee();
var AllEmpObjects= JsonConvert.SerializeObject(employeesViewMod);
return Json(AllEmpObjects);
}
можно отлаживать и просматривать данные о AllEmpObjects которого поступает форма DB
"[{\" FirstName \ ": \" Shuvo \ "\ "LastName \": \" Ahmed \ ", \" Address1 \ ": \" 110, uttra \ ", \" Address2 \ ": \" mymansing \ ", \" HomePhone \ ": 1234, \" MobileNo \ ": 2345, \" Email \ " : \ "[email protected] \", \ "Добролюбов \": \ "10/01/1977 \", \ "StartDate \": \ "2013-10-01T00: 00: 00 \", \ "InitialSalary \ ": 0, \" AccHolderName \ ": нулевой, \" BankName \ ": \" барахоловка \», \ "Поздний \": \ "uttra \", \ "AccountNo \": 1234567890 \ "PositionDDLId \" : 0, \ "MarriageStatDDLId \": 0, \ "PositionIdString \": \ "Md \", \ "MarriageIdString \": \ "Married \"}]
Мой файл JS, который отвечает, чтобы показать данные с помощью jqGrid:
function allEmployeeFunc() {
$("#list").jqGrid({
url: "/Employee/AllEmployees",
datatype: "json",
mtype: "POST",
colNames: ["First name", "Last Name", "phone", "Mobile", "Email", "status"],
colModel: [
{ name: "FirstName", width: 55 },
{ name: "LastName", width: 90 },
{ name: "HomePhone", width: 80, align: "right" },
{ name: "MobileNo", width: 80, align: "right" },
{ name: "Email", width: 80, align: "right" },
{ name: "MarriageIdString", width: 150, sortable: false }
],
pager: "#pager",
rowNum: 10,
rowList: [10, 20, 30],
sortname: "invid",
sortorder: "desc",
viewrecords: true,
gridview: true,
autoencode: true,
caption: "Detail of all EMPLOYEE",
});
}
к сожалению, нет данных о выходе, но появится сетка с пустыми внутри. может ли кто-нибудь помочь?
Уважаемый @Oleg спасибо много матовые. Работа выполнена. не могли бы вы объяснить, почему мне не нужно сериализовать здесь. без json-преобразования, как я написал «return Json (employeesViewMod);». но employeeViewMod пока не преобразован json. обычно, когда я получаю данные через AJAX, я конвертирую данные/объект в jason сначала в контроллер и json.parse в JS-файл и использую данные/объект. Еще раз спасибо за помощь. – Cloud
@Cloud: Добро пожаловать! 'return Json (employeesViewMod);' уже конвертировать объект в строку, имеющую формат JSON. Проблема состоит в том, что можно также преобразовывать не-объекты JSON: целые числа, булевы и строки. Если вы конвертируете строку в JSON, тогда все '' 'и' \ 'будут экранированы (см. [Здесь] (http://www.json.org/)). Таким образом, вы получаете строку' [{\ "FirstName \" : \ "shuvo \", ...}] 'вместо строки' [{"FirstName": "shuvo", ...}] '. Затем на стороне клиента строка будет десериализована до ** строки ** вместо ** объекта **. Поэтому jqGrid не может считывать данные, потому что ожидает объект (массив элементов). – Oleg