_Layout.cshtml中引用的JS文件/函数不能用于另一个视图

时间:2017-06-21 11:56:55

标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor

我有一些与验证相关的函数,这些函数将在我的所有视图中使用,并且位于外部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);

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

1 个答案:

答案 0 :(得分:0)

经过几个小时的捣乱,我发现了如何解决这个问题,我只是将其添加到_Layout.cshtml的底部

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