在Ajax链接上单击javascript错误?
在我看来,我有这个ajax actionlink在Ajax链接上单击javascript错误?,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,在我看来,我有这个ajax actionlink @foreach (var times in Model.ProvidedDateTimes) { <tr> <td> @times.StartDateTime to @times.EndDateTime </td> <td> @Ajax.ActionLink("Delete"
@foreach (var times in Model.ProvidedDateTimes)
{
<tr>
<td>
@times.StartDateTime to @times.EndDateTime
</td>
<td> @Ajax.ActionLink("Delete", "DeleteResponse", new { responseid = @times.ResponseId }, new AjaxOptions { UpdateTargetId="dummy",OnBegin = "begin",OnComplete="complete",OnFailure="fail",OnSuccess = "success"})</td>
</tr>
}
当我运行应用程序时,我得到javascript警报开始完成,然后失败,全部两次
当我尝试单击删除时,控制台上出现错误,提示
我呈现的包是
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-2.1.0.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.min.js"));
和在布局视图中
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/Scripts/jquery-ui-1.10.4.js")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/Kendo")
@Scripts.Render("~/bundles/toastr")
你知道我为什么在控制台中出错吗?你想改为:
function begin() {
alert("begin");
};
$(begin);
所有其他方法也是如此。甚至不确定是否要在就绪处理程序上调用Fail/Complete。当您定义这样的函数时:
$(function begin() {
alert("begin");
});
您并没有按照自己的想法真正“定义”函数$()
需要一个函数作为参数,而您正在给它一个。它所做的就是执行这个函数。一旦完成,这个定义就不会被保留。因此,紧接着这条语句,begin
不再在其他任何地方的范围内
只需直接定义您的函数:
function begin() {
alert("begin");
};
如果要在文档准备就绪时执行该函数,仍然可以将其传递给jQuery对象:
$(begin);
为什么要将函数封装在
$()
中?如果您的页面只是说function begin()
而不是$(function begin(){})
,那么您可能正在文档.ready
事件中创建函数。它们在it之外不可用。在表单之前创建一个
标记(或foreach
..),并在其中定义函数。
$(begin);