Какой предпочтительный способ добавить специфичный для вида JavaScript в приложение Asp.Net Core 2 MVC? - PullRequest
0 голосов
/ 20 октября 2018

У меня есть JavaScript, который я хотел бы добавить к одному представлению Razor (CSHTML), которое должно быть связано с input, который фильтрует TABLE:

$(document).ready(function () {

    // added for testing
    alert('ready');

    (function ($) {

        $('#filter').keyup(function () {

            var rex = new RegExp($(this).val(), 'i');
            $('.searchable tr').hide();
            $('.searchable tr').filter(function () {
                return rex.test($(this).text());
            }).show();

        })

    }(jQuery));

});

Вна данный момент код содержится в теге SCRIPT, расположенном в нижней части представления.

При загрузке страницы предупреждение никогда не срабатывает.

Если обернуть SCRIPT:

@section Head {
    <script type="text/javascript">
        $(document).ready(function () {
            // your code goes here
        });
    </script>
}

возникает эта ошибка:

InvalidOperationException: Следующие разделы были определены, но не были отображены страницей в '/Views/Shared/_Layout.cshtml': 'Голова'.Чтобы игнорировать необработанный раздел, вызовите IgnoreSection ("sectionName").

Какой предпочтительный способ добавить специфичный для представления JavaScript в приложение Asp.Net Core 2 MVC?

релевантно:https://stackoverflow.com/a/24895364/134367

1 Ответ

0 голосов
/ 20 октября 2018

Найден ответ.

Я завернул свой JAVASCRIPT в блок @section Scripts:

@section Scripts {
    <script type="text/javascript">
    $(document).ready(function () {

        alert('ready');

        (function ($) {

            $('#filter').keyup(function () {

                var rex = new RegExp($(this).val(), 'i');
                $('.searchable tr').hide();
                $('.searchable tr').filter(function () {
                    return rex.test($(this).text());
                }).show();

            })

        }(jQuery));

    });
    </script>
}

Кажется, он вызывается @RenderSection("Scripts", required: false) в _Layout.cshtml.

Как только я сделал это и перезагрузил страницу, предупреждение сработало, а остальная часть кода работала как ожидалось.

...