ASP.NET Core MVC - визуализация представления в RenderBody () - PullRequest
0 голосов
/ 11 декабря 2018

_Layout.cshtml содержит RenderBody(), который генерирует содержимое из представления в Index.cshtml.

Index.cshtml имеет большой скрипт загрузки jstree с помощью jQuery.

$('#tree').jstree({
        "plugins": ["search", "wholerow", "dnd", "contextmenu", "massload", "search", "types"],
        'core': {
            "check_callback": true, // enable all modifications, tweak for rules.
            'data': {
                'url': function (node) {
                    return node.id === '#' ? "/Home/GetRoot" : "/Home/GetChildren/" + node.id;
                },
                'data': function (node) {
                    return { 'id': node.id };
                }
            }
        }
    });

Событие changed.jstree собирает информацию о выбранном узле.Я хочу отобразить представление под деревом, которое содержит редактируемую форму, позволяющую выполнять CRUD-операции над деревом.

$('#tree').on("changed.jstree", function (e, data) {
    $.ajax({
            type: "GET",
            url: "/Home/GetNodeInformation/" + data.selected,
            data: '{id: "' + data.selected + '" }',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                if (response['node_type'] == 'Portfolio') {
                    $('#nodeinfo').load('@Url.Action("GetPortfolioDetails", "Portfolio")');
                }
                console.log(response['node_type'])
            },
            failure: function (response) {
                alert(response.responseText);
            },
            error: function (response) {
                alert(response.responseText);
            }
        });
    });

Рендеринг дерева и события на нем работает хорошо, я считаю, что это потому, что RenderBody работает как надо.

Но в тот момент, когда я звоню

$('#nodeinfo').load('@Url.Action("GetPortfolioDetails", "Portfolio")');

Вся страница снова отображается в этом div.

Вопрос - поскольку мое приложение представляет собой одностраничное приложение, как правильно управлять заполнителями в файле макета для обработки различных разделов рендеринга?В этом случае я не вижу, как я мог бы визуализировать и дерево, и область сведений под ним, потому что они взаимосвязаны.Я не думаю, что я могу использовать RenderBody для этого случая, и создание формы на лету с jQuery будет трудно поддерживать.

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