В моем проекте .net core бритвы я хотел бы вызывать методы на стороне сервера из ввода cshtml без перезагрузки страницы. Я все еще новичок с бритвенными страницами.
.cshtml :
input type="submit" id="AddCart" asp-page-handler="AddToCart" hidden
Some JS to .click() the input.
.cs :
public async void OnPostAddToCart()
{
//code
}
До сих пор я не нашел способа предотвратить перезагрузку страницы и все еще обращался к моим методам на стороне сервера.
Спасибо
РЕДАКТИРОВАТЬ:
Глядя на ссылку, предоставленную Брэдом, мне удалось заставить ее работать.
Я добавил @Page "{handler?}", Чтобы написать URL без обработчика (не уверен, имеет ли это значение для ajax),
Я установил свой URL Ajax на "ThePage / theMethod",
Я украсил свой класс контроллера бритвы с помощью [ValidateAntiForgeryToken]
И упомянул маркер защиты от подделки в ajax:
$.ajax({
url: "/mainPage/AddToCart",
type: "POST",
contentType: "application/json; charset=utf-8",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
success: function () {
alert("success");
},
complete: function () {
alert("complete")
},
failure: function () {
alert("failure");
}
});