0
私のajaxコールは初めて動作します。その後、私は例外を許可されていないメソッドを取得します。Jquery Ajaxコールは、アプリケーションを再起動するまで1回しか動作しません。
$('.AppFormFormNewOT').submit(function() {
var formID = $(this).attr('id');
var appDate = $('#' + formID + ' .dateHiddenInput').val();
var appMit = $('#' + formID + ' .mitHiddenInput').val();
var am = $('#' + formID + ' .amCheckBox').attr('checked');
var pm = $('#' + formID + ' .pmCheckBox').attr('checked');
if (!am && !pm) {
alert("Bitte geben Sie einen Halbtag an");
return false;
}
var vorOrNach;
if (am == 'true,false') {
vorOrNach = 'FirstHalfDayHasAppointment';
} else {
vorOrNach = 'SecondHalfDayHasAppointment'
}
var url = 'Plan/' + vorOrNach + "/";
var occupied = true;
$.ajax({
type: 'POST',
url: url,
datatype: 'text',
async: false,
data: {
date: appDate,
id_person: appMit
},
success: function (data) {
occupied = data;
if (occupied == "True") {
alert("Hier ist bereits ein Termin");
return false;
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('Ajax error');
alert(textStatus);
alert(errorThrown);
return false;
}
});
if (occupied == "True" || occupied == true) {
return false;
} else {
return true;
}
});
はそれが呼び出すメソッドは単純です: はここに私のJavaスクリプトコードである
[ScriptMethod][HttpPost]
public string FirstHalfDayHasAppointment(DateTime date, int id_person)
{
bool hasApp = repo.dateWithPersonAlreadyHasApp(date, id_person, HalfDay.AM);
return hasApp.ToString();
}
[ScriptMethod][HttpPost]
public string SecondHalfDayHasAppointment(DateTime date, int id_person)
{
bool hasApp = repo.dateWithPersonAlreadyHasApp(date, id_person, HalfDay.PM);
return hasApp.ToString();
}
私は、アプリケーション(単にページをリロードせず)を、再度、最初の呼び出しが動作し、任意の次を再起動すると呼び出しは再び失敗します。
編集:私はちょうど機能Ajaxの呼び出しでtrueを返す場合は常に成功:
[ScriptMethod][HttpPost]
public string FirstHalfDayHasAppointment(DateTime appDate, int id_person)
{
return "True";
}
[ScriptMethod][HttpPost]
public string SecondHalfDayHasAppointment(DateTime appDate, int id_person)
{
return "True";
}
をので、問題はサーバー側であるように思われます。しかし、私はこれがajaxと何をしなければならないのか、なぜajaxが例外を許可しないメソッドを返すのか分かりません。この情報が役立つことを願っています。ご協力いただきありがとうございます。
「async:false」を設定する理由は何ですか?それはAJAXの全目的を殺している。実際にはAJAXではありません。それはSJAXです。また '[ScriptMethod]'? ASP.NET MVCで?どうして? ASP.NET MVCで使用するコントローラアクションがあります。 –
私が偽に設定しない限り、私が知っている限り、フォームはすぐに提出されます。 – Luke
いいえ、送信ハンドラからfalseを返すとすぐに送信されません。 –