以下のコードを実行するbttn click event
とdoesn't return a data for success method.
、コントローラーメソッドが実行され、出力として false (ブール値) が返されます。javascript コードからそのブール値を選択する必要があります。
なぜ機能しないのですか?
Javascript コードは次のとおりです。
$('#btnClockInTime').off('click').on('click', function () {
var isClockOutTimeCompleted = true;
$.ajax({
url: "/Employees/IsClockOutTimeCompleted",
type: "GET",
dataType: "json",
cache: false,
data: { employeeId: employeeId },
success: function (data) {
if (!data) {
isClockOutTimeCompleted = data;
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
return false;
});
コントローラ アクション メソッドは次のとおりです。
[HttpGet]
public JsonResult IsClockOutTimeCompleted(Guid employeeId)
{
var clockingDate = Convert.ToDateTime(DateTime.Today);
var isClockOutTimeCompleted = Repository.IsClockOutTimeCompleted(employeeId, clockingDate);
return Json(isClockOutTimeCompleted, JsonRequestBehavior.AllowGet);
}
リポジトリコードは次のとおりです。
public bool IsClockOutTimeCompleted(Guid employeeId, DateTime clockingDate)
{
var clockOutTime = (from c in Catalog.EmployeeClockInOutTimes
where (c.Employee.Id == employeeId && c.Created == clockingDate && c.ClockOut == null)
select c).FirstOrDefault();
return clockOutTime == null;
}
アップデート :
応答は次のとおりです。
更新 2:
画面 1 :
画面 2 :
画面 3 :
上の画像に示されているように、私のデバッグは成功の方法になりません。2 番目の画面 (でデバッグする場合error
) の後、コントローラーに移動してデータを取得します。3番目の画面は、コントローラーから戻った後のステータスを示しています。