代码之家  ›  专栏  ›  技术社区  ›  craig

向Asp.NETCore2MVC应用程序添加视图特定的JavaScript的首选方法是什么?

  •  -2
  • craig  · 技术社区  · 6 年前

    我有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 位于视图底部的标记。

    当页面加载时,警报不会触发。

    如果我把它包起来

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

    此错误产生于:

    InvalidOperationException:定义了以下部分 “/Views/Shared/\u Layout.cshtml”:“Head”。忽略未经描述的 节名为IgnoreSection(“节名”)。

    向Asp.NETCore2MVC应用程序添加视图特定的JavaScript的首选方法是什么?

    https://stackoverflow.com/a/24895364/134367

    1 回复  |  直到 6 年前
        1
  •  1
  •   craig    6 年前

    找到了答案。

    我把衣服包好了 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) 在\u Layout.cshtml中。