Javascript _Layout.cshtml中引用的JS文件/函数不适用于其他视图
我有一些与验证相关的函数,这些函数将用于我的所有视图,并且位于外部JS文件中。我在_Layout.cshtml中添加了JS引用 我的理解是,如果文件被引用到_Layout.cshtml中,那么它就可以在布局中呈现的视图中使用。但是,例如,当我运行另一个视图并检查它时,我看到了对JS文件“val.JS”的引用,但它在控制台中出现了一个错误(这个错误可能是我的验证无法在其他视图上工作的原因): 下面是我的val.cs文件的定义: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
(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,我现在要检查一下,你根本不需要该脚本。您可以只设置框架已经添加的类的样式