jQGrid и MVC 3.0 ViewModel - PullRequest
       1

jQGrid и MVC 3.0 ViewModel

4 голосов
/ 18 июня 2011

Возможно ли выставить значения Viewmodel через javascript?

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

  1. Получать данные через ajax. Это я сделал один раз в тестовом проекте, и сетка отображает значения. Если такой подход, то я полагаю, мне не понадобится модель представления, если я получаю данные с помощью AJAX?

  2. Получить данные из модели представления. Я видел, как вы устанавливаете jQGrid в javascript. Но тогда как мне получить данные из viewmodel и установить jQGrid на { dataType: 'local', data = X }, где X должен быть JSON моей viewmodel?

Надеюсь, я ясно дал понять =)

Мне нужны подсказки для дальнейшего расследования!

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Сериализация модели представления в строку JSON.Я инкапсулирую это поведение методом расширения ToJSON().Затем вы можете загрузить его как объект JavaScript с помощью

 var jsObject = $.parseJSON('<%= Model.ToJSON() %>')

. Если в вашем решении еще нет механизма сериализации JSON, я настоятельно рекомендую использовать JSON.NET NewtonSoft.

Позволяет преобразовать объект C # в строковое представление JSON для этого объекта с помощью простого вызова JsonConvert.SerializeObject(Model).

1 голос
/ 20 июня 2011

Вы можете использовать это:

return (model, JsonRequestBehavior.AllowGet);

, чтобы отправить JS-форматированный ответ на запрос на получение или отправку вашей таблицы.Вам нужно быть осторожным с форматом, в котором поступают данные, например, мы используем его как базовый класс для всех наших моделей jqGrid:

public class JqGridInfo<TModel>
{
    public virtual int total { get; set; }

    public virtual int page { get; set; }

    public virtual int records { get; set; }

    public virtual List<TModel> rows { get; set; }
}

Это сделает ответ JSON имитирующим то, что ожидает jqGrid.

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