我在控制器中有以下方法。
我已添加了额外的参数。
在将代码转换为 Ajax 脚本后,但在执行过程中仍然收到错误:
[HttpPost]
[Authorize(Roles ="Klient")]
[ValidateAntiForgeryToken]
public ActionResult GetAvaiableHouses(DateTime startDate, DateTime endDate)
{
Session.Remove("Reservation");
IEnumerable <SelectListItem> avaiableHouses = repository.GetAllNamesAvaiableHouses(repository.GetAvaiableHousesInTerm(startDate, endDate));
List<string> houses = new List<string>();
avaiableHouses.ToList().ForEach(item => houses.Add(item.Value));
if(avaiableHouses.ToList().Count == 0)
{
return new EmptyResult();
}
Session["Reservation"] = new NewReservation()
{
StartDate = startDate,
EndDate = endDate,
AvaiableHouses = avaiableHouses
};
return PartialView("~/Views/Shared/_AvaiableHousesPartial.cshtml", houses);
}
这个方法是通过在View.cshtml中使用ajax脚本来调用的
$(function () {
$("#btnCheckAvaiableHouses").click(function () {
$.ajax({
type: "POST",
url: "/ClientReservations/GetAvaiableHouses",
data: '{startDate: "' + $("#startdate").val() + '",endDate:"' + $("#enddate").val() + '",__RequestVerificationToken:"' + $('input[name=__RequestVerificationToken]').val() +'" }',
contentType: "application/json; charset=utf-8",
dataType: "text",
success: function (response) {
$('#avaiableHouses').html(response)
if (!$('#avaiableHouses').is(':empty')) {
document.getElementById("btnConfirmTerm").style.visibility = 'visible';
}
else {
$('#avaiableHouses').html('Brak dostępnych domków w podanym terminie')
}
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
});
});
这是一个按钮区域,其中有一个按钮会调用这个脚本。
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="button" id="btnCheckAvaiableHouses" value="Sprawdź dostępność domków" class="btn btn-default" />
<input type="button" id="btnConfirmTerm" value="Potwierdź termin" onclick="location.href='@Url.Action("Create", "ClientReservations")'" class="btn btn-default" style="visibility:hidden" />
</div>
</div>
我已添加了额外的参数。
'",__RequestVerificationToken:"' + $('input[name=__RequestVerificationToken]').val()
在将代码转换为 Ajax 脚本后,但在执行过程中仍然收到错误:
,__RequestVerificationToken 不存在。可能的原因是令牌丢失或未正确设置。