我打算在单击ActionLink时调用函数,并且根据函数的输出将转到下一页或显示警报。
当在Ajax.ActionLink中OnBegin为true时,它应该触及控制器方法,因此转到指定的视图。但是当我点击ActionLink时,OnBegin返回true但没有任何反应。我看到了同一页。
<script src="~/Scripts/jquery-2.1.0.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
@using (@Html.BeginForm())
{
@Ajax.ActionLink("Add Document", // <-- Text to display
"AddDocument", // <-- Action Method Name
"Home", // <-- Controller Name
null,
new AjaxOptions { OnBegin = "OnBegin('AddDocument')" },
null
)
}
<script type="text/javascript">
function OnBegin(vObject) {
debugger;
return true;
}
</script>
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:1)
我认为你是以错误的方式使用它。 @Ajax.ActionLink
将命中您的控制器并检索响应的内容,但您没有设置任何空间来保存响应。 AjaxOptions
的其中一个属性是UpdateTargetId
,应将其设置为保存响应的id
标记。
@Ajax.ActionLink("Add Document", "AddDocument", "Home",
new AjaxOptions
{
OnBegin = "OnBegin('AddDocument')",
UpdateTargetId = "responseContent"
})
在视图中放置一个标记来保存响应:
<div id="responseContent"></div>
响应将插入div
。