ASP.NET MVC 2 ExtJs и Ajax отправляют массив объектов в контроллер? - PullRequest
1 голос
/ 05 апреля 2011

Я занимаюсь разработкой веб-приложения ASP.NET MVC2.
Я хочу отправить массив JSON-объектов из моего кода представления с помощью AJAX на контроллер.
Я видел много примеров того, как сделать это с помощью jquery.
Однако я хотел бы знать, как сделать это с помощью Ajax-запроса без использования jquery?
Я читал, что обновление до MVC3 может помочь, если это лучшее решение, можете ли вы указать мне правильное направление обновления с MVC2 до MVC3?

Ниже приведен пример кода:

ПРОСМОТР

var modRecords = store.getModifiedRecords();
Ext.Ajax.request({
    url: AppRootPath +'EmployeeDetails/SetSAASUser',
    params: {
                users: modRecords
            }
}); 

CONTROLLER

    public JsonResult SetUser(IEnumerable<User> users)
    {
        GetData data = delegate
        {
            return Repo.SetUser(users);
        };
        JsonResultBase jsonResult = GetJsonResult(data);
        JsonResult json = PortalJsonResult(jsonResult, JsonRequestBehavior.AllowGet);
        return json;
    }

1 Ответ

2 голосов
/ 06 апреля 2011

В MVC3 или нет в MVC3

Нет особой необходимости конвертировать в MVC3, потому что вы также можете использовать JSON в MVC2.Есть два на самом деле много способов сделать это:

  1. с использованием JsonValueProviderFactory, который Фил Хаак описал в своем блоге , который даст вамточно такая же функциональность, как если бы вы использовали MVC3.

  2. Предварительно преобразуйте данные вашего клиента, чтобы ExtJS правильно отправил их на сервер.Это похоже на то, что я сделал с плагином jQuery .Очень похожая вещь может быть проделана и с ExtJS.Для этого необходимо выполнить два шага:

    • Сначала вам необходимо проанализировать, как ваш объект JSON преобразуется по проводам (используйте Fiddler)

    • Напишите код, который преобразует ваш JSON в форму, которая будет правильно отправлена ​​на сервер.Что это будет за форма?Вы можете прочитать об этом в моем ранее упомянутом сообщении в блоге .

  3. Я не знаю, знаете ли вы об этом, но естьтакже то, что называется Ext.Direct для ASP.NET MVC , которое может помочь вам в этом сценарии.Как говорится, он поддерживает простые, сложные и массивные параметры, которые на самом деле его охватывают.

Единственное преимущество использования MVC3 состоит в том, что JsonValueProviderFactory включен для вас по умолчанию без какого-либо дополнительного кода.

Я использовал ExtJS несколько лет назад, когда он был в версии 2. Нет Ext.Direct и MVC тогда еще.Но мы очень успешно связали его с приложением Asp.net WebForms с асинхронными вызовами WCF, используя те же уровни бизнес + данных, что и приложение Asp.net WebForms.

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