В приложении MVC с использованием JQGrid - как установить пользовательские данные в действии контроллера - PullRequest
2 голосов
/ 22 декабря 2009

Как установить пользовательские данные в действии контроллера. То, как я это делаю, разрушает мою сетку. Я пытаюсь простой тест без удачи. Вот мой код, который не работает. Спасибо.

       var dataJson = new
        {

            total = 
            page = 1,
            records = 10000,
            userdata = "{test1:thefield}",
            rows = (from e in equipment
                    select new
                    {
                        id = e.equip_id,
                        cell = new string[] {
                e.type_desc,
                e.make_descr,
                e.model_descr,
                e.equip_year,
                e.work_loc,
                e.insp_due_dt,
                e.registered_by,
                e.managed_by
            }
                    }).ToArray()
        };
        return Json(dataJson);

1 Ответ

2 голосов
/ 22 декабря 2009

Не думаю, что вам нужно конвертировать его в массив. Я использовал jqGrid, и я просто позволил функции Json сериализовать объект. Я не уверен, что это может вызвать проблемы, но это как минимум ненужно.

Кроме того, ваши пользовательские данные будут оцениваться в виде строки (поскольку вы отправляете их в виде строки). Попробуйте отправить его как анонимный объект. а именно:

userdata = new { test1 = "thefield" },

Вам необходимо указать значение total и запятую между ними и страницей. (Я предполагаю, что это опечатка. Я не думаю, что это скомпилируется как есть.)

EDIT: Кроме того, я бы порекомендовал добавить опцию «jsonReader: {repeatitems: false}» к вашему javascript. Это позволит вам отправлять свою коллекцию в поле «строки» без преобразования в синтаксис «{id: ID, cell: [data_row_as_array]}». Вы можете установить свойство "key = true" в вашем colModel, чтобы указать, какое поле является идентификатором. Это значительно упрощает передачу данных в сетку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...