これは非常に一般的な(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 が 2 つの Jquery-UI バージョンの参照を作成する理由がわかりません...理由がわかりませんでした。
なぜコールバック関数が定義されていないのですか??
助けてくれてありがとう