Задать вопрос

Как распарсить POST запрос с динамическими данными в WEB API?

Добрый день.
У меня во вьюшке скрип генерирует заранее не известное кол-во данных, и потом посылает их пост запросом. Нашел статью где говорится, что в классе можно сделать Dictionary словарь, и оправлять данные используя []
Так и сделал:
public Dictionary<string, object> Column { get; set; }

Скрипт оправляет данные типа:
Column%5BP5%5D=&Column%5BP6%5D=71&Column%5BP7%5D=100%25+-+%D1%85%D0%BB%D0%BE%D0%BF%D0%BE%D0%BA&Column%5BP8%5D=&Column%5BP9%5D=&Column%5BP10%5D=&

и тогда в контроллере:
public async Task<ActionResult> EditAModel(ModelView data)
        {
                // обработка
        }

все хорошо отрабатывает 26c1db60db6e44b28b2250e9eb1d3f77.jpg

Захотел сделать тоже самое но уже в ApiController. И начались проблемы. Код тот же, но в этот словарь данные уже не записываются... Через Request получить не получается, тк QueryString всегда пустая...

Получилось получить строку вот так:
public async Task<IHttpActionResult> EditModelList()
        {
            string result = await Request.Content.ReadAsStringAsync();
            var data = JsonConvert.DeserializeObject<ModelView>(result); // Не парсит, выдает ошибку
            return Ok();
        }

Но распарсить не получается.

В обычном контроллере все прошло гладко, а тут...
Мож я чего-то не дочитал и в Api это делается по другому? Как быть? Что делать?
  • Вопрос задан
  • 3484 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Neuroware
@Neuroware
Программист в свободное от работы время
Какую ошибку выдает то?
Ответ написан
Комментировать
wkololo_4ever
@wkololo_4ever
Дык, вы же получаете не JSON, как вы его собираетесь рапарсить JsonConvert`ом?

var data = JsonConvert.DeserializeObject<ModelView>(result);

Тут в result набор ключей и значений, а не json объект.
Ответ написан
madmages
@madmages
Человек прямоходящий
urlencoded строка в посте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы