Передача данных модели (многие-ко-многим) в MVC 5 через JsonConvert.SerializeObject() для jQGrid

410
30 января 2017, 15:55
Дано:

Модели Good и GoodTag (наследованный от Tag).

public class Good
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public ICollection<GoodTag> GoodTags { get; set; }
    public Good()
    {
        GoodTags = new List<GoodTag>();
    }
}
public class Tag
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}
public class GoodTag : Tag
{
    public ICollection<Good> Goods { get; set; }
}

В представлении используется jQgrid для отображения данных. Поэтому метод контроллера возвращает json объект.

public string JsonGetDataGoodTags()
{
    var goods = db.GoodTags.ToList();
    return JsonConvert.SerializeObject(goods);
}

В представлении такой код.

<script type="text/javascript">
    $(document).ready(function () {
        $("#jqg-GoodTags").jqGrid({
            url: '@Url.Action("JsonGetDataGoodTags", "Adminka")',
            datatype: "json",
            colNames: ['Id', 'Name', 'Description', 'Goods'],
            colModel: [
            { name: 'Id', index: 'Id', width: 100, stype: 'text' },
            { name: 'Name', index: 'Name', width: 150, sortable: true },
            { name: 'Description', index: 'Description', width: 150, sortable: true },
            { name: 'Goods', index: 'Goods', width: 100, sortable: false },
            ],
            rowNum: 5, // число отображаемых строк
            loadonce: true, // загрузка только один раз
            sortname: 'Name', // сортировка по умолчанию по столбцу Id
            sortorder: "desc", // порядок сортировки
            caption: "Теги"
        });
    });
</script>
<table id="jqg-GoodTags"></table>

Вопрос:

Как сделать так, чтобы метод возвращал в ответе не только данные о товаре, но и о связанных с ним тегах?

В представлении, в гриде, в колонке тегов, у товара нужно видеть перечисление всех связанных тегов.

READ ALSO
textbox.Text=stack.Pop() не работает

textbox.Text=stack.Pop() не работает

Каким образом работает stackpop() ? Хочу реализовать функцию Undo

355
Химия 8 класс контрольная [требует правки]

Химия 8 класс контрольная [требует правки]

В воде 150г раствором 20г гидроксида натрия рассчитайте массовую долю гидроксид натрия в получении раствора вычислите количество молекул...

342
AJAX в ASP.NET MVC 4

AJAX в ASP.NET MVC 4

Имеется форма с ненавязчивым Ajax, настройки для формы - ajaxOpt

601