我正在由 Scott Allen 在 Pluralsite 上开发 ode-to-food MVC4 演示应用程序,并且在启用 ajax 调用时遇到了一个麻烦的错误。我认为这可能与我最近的 jquery 版本有关,但不确定。
当我取消注释以下行以激活 ajax 调用时,我收到 Microsoft JScript 运行时错误,否则它可以正常工作:
$('form[data-ucw-ajax="true"]').submit(ajaxFormSubmit);
错误是:
Unhandled exception at line 4411, column 2 in http://localhost:17471/Scripts/jquery-1.9.0.js
0x800a139e - Microsoft JScript runtime error: Syntax error, unrecognized expression:
<div class="wrapper clearfix">
....
</div>
<hr />
我的视图有这种形式:
<form method="get" action="@Url.Action("Index")" data-ucw-ajax="true" data-ucw-target="#facilitiesList">
我的 JQuery 代码是:
$(function () {
var ajaxFormSubmit = function () {
var $form = $(this);
var options = {
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize()
};
$.ajax(options).done(function (data) {
var $target = $($form.attr('data-ucw-target'));
var $newHtml = $(data);
$target.replaceWith($newHtml);
$newHtml.effect('highlight');
});
return false;
};
$('form[data-ucw-ajax="true"]').submit(ajaxFormSubmit);
});
我的脚本加载包看起来像:
bundles.Add(new ScriptBundle("~/bundles/jquery/ucw").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery-migrate-1.0.0.js",
"~/Scripts/My.js"
));