Jquery Ajax不引人注目的验证和MVC4
我正试图让我的AJAX在局部视图中工作。我已将其包含在布局页面的顶部,如下所示:Jquery Ajax不引人注目的验证和MVC4,jquery,ajax,asp.net-mvc-4,validation,scripting,Jquery,Ajax,Asp.net Mvc 4,Validation,Scripting,我正试图让我的AJAX在局部视图中工作。我已将其包含在布局页面的顶部,如下所示: <head> <meta charset="utf-8" /> <title>@ViewBag.Title - COMIS</title> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - COMIS</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="~/Content/themes/base/jquery.ui.core.css" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery.ui.theme.css")" rel="stylesheet"
type="text/css" />
<script src="~/Scripts/jquery-1.11.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.11.1.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-migrate-1.2.1.js" type="text/javascript"></script>
<script src="../../Scripts/DatePickerReady.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui-1.11.1.validate.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript">
</script>
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery") /
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/buttons.js")
@Scripts.Render("~/Scripts/navigation.js")
</head>
@ViewBag.Title-COMIS
@style.Render(“~/Content/css”)
@style.Render(“~/Content/themes/base/css”)
@Scripts.Render(“~/bundles/modernizer”)
@Scripts.Render(“~/bundles/jquery”)/
@Scripts.Render(“~/bundles/jqueryui”)
@Scripts.Render(“~/bundles/jqueryval”)
@Scripts.Render(“~/Scripts/buttons.js”)
@Scripts.Render(“~/Scripts/navigation.js”)
但是它不起作用。它抛出错误:“JavaScript运行时错误:无法获取未定义或空引用MVC4的属性‘unobtrusive’”。我认为这是因为我引用了太多脚本。有人能告诉我我做错了什么吗
BUNDLE.config
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery-ui.unobtrusive-{version}.js"));
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.theme.css"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.unobtrusive*"));
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css",
"~/Content/PagedList.css"));
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css",
"~/Content/jquery-ui.css"));
bundles.IgnoreList.Clear();
bundles.IgnoreList.Ignore("*.intellisense.js");
bundles.IgnoreList.Ignore("*-vsdoc.js");
bundles.IgnoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
}
}
**PARTIAL VIEW** -
@model COMIS.Models.X
@using(Html.BeginForm("Create"))
{ @Html.ValidationSummary(true)
<fieldset class="innerform">
<div>
....
</div>
</fieldset>
}
<script src="~/Scripts/jquery-1.11.1.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
公共类BundleConfig
{
公共静态无效注册表绑定(BundleCollection绑定)
{
添加(新脚本包(“~/bundles/jquery”)。包括(
“~/Scripts/jquery-{version}.js”);
添加(新脚本包(“~/bundles/jqueryui”)。包括(
“~/Scripts/jquery ui-{version}.js”,
“~/Scripts/jqueryui.unobtrusive-{version}.js”);
添加(新样式包(“~/Content/themes/base/css”)。包括(
“~/Content/themes/base/jquery.ui.core.css”,
“~/Content/themes/base/jquery.ui.datepicker.css”,
“~/Content/themes/base/jquery.ui.theme.css”);
添加(新脚本包(“~/bundles/jqueryval”)。包括(
“~/Scripts/jquery.validate*”,
“~/Scripts/jquery.unobtrusive*”);
添加(新脚本包(“~/bundles/modernizer”)。包括(
“~/Scripts/modernizer-*”);
添加(新样式包(“~/Content/css”)。包括(“~/Content/site.css”,
“~/Content/PagedList.css”);
添加(新样式包(“~/Content/css”)。包括(“~/Content/site.css”,
“~/Content/jqueryui.css”);
bundles.IgnoreList.Clear();
bundles.IgnoreList.Ignore(“*.intellisense.js”);
bundles.IgnoreList.Ignore(“*-vsdoc.js”);
bundles.IgnoreList.Ignore(“*.debug.js”,OptimizationMode.WhenEnabled);
}
}
**局部视图**-
@模型COMIS.Models.X
@使用(Html.BeginForm(“创建”))
{@Html.ValidationSummary(true)
....
}
将所有其他脚本添加到BundleConfig.cs
@ViewBag.Title-COMIS
@style.Render(“~/Content/css”)
@style.Render(“~/Content/themes/base/css”)
@Scripts.Render(“~/bundles/modernizer”)
@Scripts.Render(“~/bundles/jquery”)/
@Scripts.Render(“~/bundles/jqueryui”)
@Scripts.Render(“~/bundles/jqueryval”)
@Scripts.Render(“~/Scripts/buttons.js”)
@Scripts.Render(“~/Scripts/navigation.js”)
编辑
//捆绑图
//对于js脚本
添加(新脚本包(“~/bundles/*Bundle Name*”)。包括(
“~/Scripts/file.js”);//js文件的位置
//像这样引用js包
@Scripts.Render(“~/bundles/*Bundle Name*”)
//css
添加(新样式包(“~/Content/*Bundle Name*”)。包括(
“~/Content//css/file.css”);//css文件的位置
//像这样引用css包
@style.Render(“~/Content/*Bundle Name*”)
尝试在布局页面底部按顺序引用脚本
例如:
<script src="~/Scripts/jquery-2.1.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
</body>
</html>
如果有很多脚本引用,请检查BundleConfig.cs并查看绑定的内容。您可能不止一次引用了它们。更新它以包含my bundle.config@burg删除所有我唯一要添加的是bundles.add(new ScriptBundle(“~/bundles/navigation”)。include(“~/Scripts/navigation-”);添加(新脚本包(“~/bundles/knockout”)。包括(“~/Scripts/knockout-”);bundles.Add(新脚本包(“~/bundles/migrate”)。包括(“~/Scripts/migrate-*”);发表你的部分观点。有时,我发现您必须添加部分视图的底部,然后将ajax脚本放在脚本标记的下面:)
<script src="~/Scripts/jquery-2.1.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
</body>
</html>