2014-03-13 109 views
0

在我的部分观点我有这个AJAX的ActionLink关于Ajax链接点击javascript错误?

@foreach (var times in Model.ProvidedDateTimes) 
{ 
    <tr> 
     <td> 
      @times.StartDateTime &nbsp; to &nbsp; @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> 
} 

这些功能

$(function begin() { 
    alert("begin"); 
}); 
$(function complete() { 
    alert("complete"); 
}); 
$(function fail() { 
    alert("fail"); 
}); 

function deleteResponse(id){ 
     var url = $("#providedTimes").data('url'); 
     url = url + "&t=" + new Date().getTime(); 

     $.get(url, function (data) { 

      $('#providedTimes').html(data); 
     }); 
    }; 

当我运行应用程序,我得到的JavaScript警报开始完成,则失败了,所有的两倍。

当我尝试点击删除我得到在控制台上的错误,说 enter image description here 我渲染束是

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")); 

和_layout视图

@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") 

任何想法,为什么我在控制台中出现错误?

+2

你为什么封装你在'$()'中的函数?也许如果你的页面只是说'function begin()'而不是'$(function begin(){})' –

+0

你正在'document.ready'事件中创建函数。它们不在其外面。在表单(或“foreach”)之前创建一个'

1

你想要的,而不是:

function begin() { 
    alert("begin"); 
}; 

$(begin); 

与同为所有其他方法。即使不确定你想在调度程序中调用Fail/Complete。