Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript _Layout.cshtml中引用的JS文件/函数不适用于其他视图_Javascript_Jquery_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

Javascript _Layout.cshtml中引用的JS文件/函数不适用于其他视图

Javascript _Layout.cshtml中引用的JS文件/函数不适用于其他视图,javascript,jquery,asp.net-mvc,asp.net-mvc-4,razor,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 4,Razor,我有一些与验证相关的函数,这些函数将用于我的所有视图,并且位于外部JS文件中。我在_Layout.cshtml中添加了JS引用 我的理解是,如果文件被引用到_Layout.cshtml中,那么它就可以在布局中呈现的视图中使用。但是,例如,当我运行另一个视图并检查它时,我看到了对JS文件“val.JS”的引用,但它在控制台中出现了一个错误(这个错误可能是我的验证无法在其他视图上工作的原因): 下面是我的val.cs文件的定义: (function ($) { var defaultOpti

我有一些与验证相关的函数,这些函数将用于我的所有视图,并且位于外部JS文件中。我在_Layout.cshtml中添加了JS引用

我的理解是,如果文件被引用到_Layout.cshtml中,那么它就可以在布局中呈现的视图中使用。但是,例如,当我运行另一个视图并检查它时,我看到了对JS文件“val.JS”的引用,但它在控制台中出现了一个错误(这个错误可能是我的验证无法在其他视图上工作的原因):

下面是我的val.cs文件的定义:

(function ($) {
    var defaultOptions = {
        validClass: 'has-success',
        errorClass: 'has-error',
        highlight: function (element, errorClass, validClass) {
            $(element).closest(".form-group")
                .removeClass(validClass)
                .addClass('has-error');
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).closest(".form-group")
            .removeClass('has-error')
            .addClass(validClass);
        }
    };

    $.validator.setDefaults(defaultOptions);

    $.validator.unobtrusive.options = {
        errorClass: defaultOptions.errorClass,
        validClass: defaultOptions.validClass,
    };
})(jQuery);

所以任何形式的帮助都会很棒。谢谢。

经过几个小时的挣扎,我找到了解决方法,我只是将其添加到我的_Layout.cshtml的底部

 @Scripts.Render("~/bundles/jqueryval")
 <script src="@Url.Content("~/Scripts/val.js")"></script>
@Scripts.Render(“~/bundles/jqueryval”)

您似乎没有将
jquery.validate.js
jquery.validate.unobtrusive.js
包含在layout@StephenMuecke包含在my_Layout.cshtmln中,而不包含在您显示的图像中。并且错误消息确认它不是(至少不是在
validation.js
之前)。但是你想用脚本实现什么?@StephenMuecke我想实现我正在验证的字段是红色的,如果验证不满意,也许我不想包含unobtrustive.js,我现在要检查一下,你根本不需要该脚本。您可以只设置框架已经添加的类的样式