![](/img/trans.png)
[英]MVC3 Trigger multiple functions on ActionLink OnComplete event?
[英]MVC3 - Ajax actionlink - OnBegin, onComplete
使用MVC3,C#和Razor View Engine:我有一个具有Ajax Action链接的表单。 在选项中我试图指定OnBegin和OnComplete javascript函数调用。 在这个问题中,我拿出了函数的内容并简单地添加了警报,以便我可以验证被击中的函数。 我真正想要做的就是在ajax调用期间使用$ .blockUI。
相关代码如下所示:
@Ajax.ActionLink("my test link", "myAction", new { Controller = "myController" }, new AjaxOptions { OnBegin = "ajaxStart", OnComplete = "ajaxStop" })
<script type="text/javascript">
function ajaxStart() {
alert("start");
}
function ajaxStop() {
alert("stop");
}
</script>
出于某种原因,这两个函数永远不会被指定调用。 我用括号和没有括号试过它,例如:
@Ajax.ActionLink("my test link", "myAction", new { Controller = "myController" }, new AjaxOptions { OnBegin = "ajaxStart()", OnComplete = "ajaxStop()" })
都没有工作。
有任何想法吗?
谢谢,托尼
确保您已将以下脚本包含在您的页面中:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
并且您已在web.config中启用了不显眼的ajax:
<appSettings>
...
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
在ASP.NET MVC 3中,不引人注目的javascript与jQuery一起使用,因此如果不包含正确的脚本,则不会解释由html帮助程序发出的HTML5 data- *属性,并且不会发送任何AJAX请求。
您可以尝试在Ajax.ActionLink
方法调用之前放置<script>
块。 将此语法用于ajax链接:
@Ajax.ActionLink("my test link", "myAction", "myController", new AjaxOptions { OnBegin = "ajaxStart", OnComplete = "ajaxStop" })
并记得在您的视图或jquery.unobtrusive-ajax.min.js
中导入jquery.unobtrusive-ajax.min.js
_Layout.cshtml
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.