我尝试四处搜索,因为在我看来这似乎是一个非常常见的(NuBee?)问题,但对我没有任何帮助......所以它在这里
切入正题,我的 Razor 代码(稍后显示)将 ajax 表单发布到 MVC4 操作,该操作工作正常,但任何尝试向表单(等)添加回调函数都OnSuccess
失败OnBegin
,并出现回调函数是运行时错误没有定义的。这是我的 Chrome 浏览器中的错误消息的图像,就在发生异常之后:
这是表单的代码:
@using (Ajax.BeginForm("AskQuestion", null,
new AjaxOptions() {
OnSuccess = "endAskQuestion" },
new { id = "askQuestionForm" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>@ViewBag.Controller</legend>
<br />
@{ var investigationID = Model.Investigation.InvestigationID; }
@Html.HiddenFor(model => investigationID)
<input type="submit" class="button" value="שלח היגד"/>
<input type="button" id="cancelEdit" class="button" value="בטל עריכה"/>
</fieldset>
}
endAskQuestion
以及其中定义的脚本:
$(document).ready(function () {
//deleted several Jquery and JS functions...
// callback function definition
function endAskQuestion() {
alert("adad");
}
})
另外,我看到一些帖子指出对 JQuery 和 Ajax 脚本的引用很重要,所以这里是带有引用的 html 的 head 部分:
<head>
<meta charset="utf-8" />
<title>RTInvestigation</title>
<link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="/Content/css?v=_WuF_JGHabtqdWNcwICWILVG9A391eZyF0GO24jlq9U1" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" />
<script> </script>
<meta name="viewport" content="width=device-width" />
<script src="/Scripts/jquery-1.8.2.js"></script>
<script src="/Scripts/jquery-ui-1.8.18.js"></script>
<script src="/Scripts/jquery-ui-1.8.20.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
</head>
我不知道为什么 Razor 会为两个 Jquery-UI 版本创建引用……我找不到原因。
怎么没有定义回调函数??
感谢您的帮助