C # - MVC - JSON - вернуть список со стороны сервера на сторону клиента с помощью ViewBag - PullRequest
0 голосов
/ 09 ноября 2018

Привет всем,

Мне нужно вернуть список на сторону клиента, используя viewbag и вернуть представление

посмотрим код:

Сторона сервера:

var model = _iSiteService.FindProduct(id);
    var UnitsData = _iSiteService.GetAllProductsUnits(id).Where(x => x.Product.IsActive).Select(i => new
                        {
                            i.Id,
                            i.UnitId,
                            i.ConversionFactor,
                            i.ProductId
                        }).ToArray();

                        ViewBag.dataUnitsXX = Json(new
                        {
                            Data = UnitsData.ToArray()
                        }, JsonRequestBehavior.AllowGet);

    return View(model);

Клиентская сторона:

var json = @Html.Raw(ViewBag.dataUnitsXX);

Сообщение об ошибке:

var json = System.Collections.Generic.List`1[<>f__AnonymousType2`4[System.Int32,System.Int32,System.Decimal,System.Int32]];

Как я могу это решить.

, пожалуйста, помогите мне вернуть данные в переменной в JavaScript Спасибо.

1 Ответ

0 голосов
/ 09 ноября 2018

Этого можно добиться, добавив список UnitsData в ViewBag:

 ViewBag.dataUnitsXX = UnitsData;

, а затем на стороне клиента, используя:

var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.dataUnitsXX));

Обратите внимание, что способ, которым вы пытаетесь сериализовать данные, представляет собой смесь концепций. Используемый здесь Json предназначен для возврата результата действия типа json. Вместо этого вы возвращаете модель, но добавляете результат действия в ViewBag. Вы можете узнать больше о типах результатов действий здесь .

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