ASP.NET MVC Передача innerHTML-текста промежутков внутри div в контроллер - PullRequest
0 голосов
/ 30 августа 2018

В настоящее время я пытаюсь получить строки из диапазонов и сохранить их в строковой переменной javascript. Затем я пытаюсь передать данные, когда нажимаю на кнопку поиска, которая является HTML.ActionLink. Для простоты я добавил только соответствующие биты кода.

Это код внутри моего представления: Это часть JavaScript:

<script type="text/javascript">
$(document).ready(function () {
    $(document).on('click', '#search', function () {
        var tags = '';
        var spans = document.getElementById('imaginary_container').getElementsByTagName('span'),
        obj = {};

        for (var i = 0, l = spans.length; i < l; i++) {
            obj[spans[i].id] = spans[i].textContent || spans[i].innerText;
            tags.concat(obj[spans[i].id]);
        }

        // save private tags

    })
});

Тогда у меня есть этот div ниже, где у меня есть кнопка:

<div class="buttonBox">
            @Html.ActionLink("Search",
                "SearchAll",
                "Search",
                new { tags = ViewBag.Tags },
                new
                {
                    @class = "btn btn-primary",

                }
                )
        </div>

    </div>

Я исследовал эту проблему, и люди говорят, что это либо невозможно, либо есть устаревшие ответы. Однако, если я иду в неправильном направлении, может кто-нибудь указать, как это сделать?

Больше контекста: Приложение отображает теги на главной странице, которые вы можете щелкнуть и переместить в другой div в виде диапазона, мне нужно, чтобы данные выбранных тегов были отправлены обратно в виде строки, чтобы я мог запросить ответ на другой странице, отобразить файлы и ссылки, которые ссылаются к этим тегам.

Главная страница

Обновление:

Я добавил форму с сообщением и скрытым вводом, где я храню значения пролетов.

Функция javascript, которая также работает с изменением положения тегов, теперь также добавляет внутренний текст интервалов к моему скрытому вводу.

 $(document).ready(function () {

        $(document).on('click', '.delete-button', function () {

            var newSpan = document.createElement('span');
            document.getElementById('imaginary_container').appendChild(newSpan);
            newSpan.innerHTML = $(this).html();
            var tags = $("#tags");
            var tags = "";
            var spans = document.getElementById('imaginary_container').getElementsByTagName('span'),
            obj = {};
            tags += spans[0].innerText;
            for (var i = 1, l = spans.length; i < l; i++) {
                tags += ',' + spans[i].innerText;
            }

            $("#tags").val(tags);

            $(this).remove();
        })
    });

и простой скрытый ввод:

<input type="hidden" id="tags" name="Tags" />

Теперь это прекрасно работает!

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