В настоящее время я делаю сайт для отображения местоположений на карте Google. Я получаю адреса из базы данных Airtable.com, и все там работает нормально. Однако, поскольку Google разрешает только определенное количество запросов на геокодирование адресов, я хочу сохранить координаты в той же базе данных, поэтому я использую api геокода только тогда, когда нужно найти новое местоположение (адрес). У меня есть все настройки, но я не могу понять, как я вызываю метод cs из js на страницах razor. Я использовал WebMethod в прошлом, но, по-видимому, я не могу использовать его здесь.
Когда я пытаюсь использовать примеры, которые нахожу в Интернете, он говорит, что мне нужен RequestVerificationToken, но для этого требуется, чтобы вызов происходил из формы (я прав?), И мой вызов ajax запрашивается, когда сайт загружается, и он получает местоположение из базы данных, в которой еще нет координат.
Я впервые использую Razor Pages, так что потерпите меня, если я что-то неправильно понял.
Изображение моего метода cs, который я хотел бы вызвать (Index.cshtml.cs) https://i.stack.imgur.com/nnqdQ.png
[HttpPost] // RequestVerificationToken
public void OnPostGeoLocation()
{
// Just to test that it actually gets called
Console.WriteLine("OnPostGeoLocation CALLED ####################################");
Console.WriteLine("OnPostGeoLocation CALLED ####################################");
Console.WriteLine("OnPostGeoLocation CALLED ####################################");
Console.WriteLine("OnPostGeoLocation CALLED ####################################");
}
Изображение вызова Ajax из JavaScript, который обычно вызывается при загрузке страницы: AjaxCall
function updateRow(recordID, latLng) {
console.log("REC_ID: " + recordID);
console.log("LatLng: " + latLng);
$.ajax({
type: "POST",
url: '/Index?OnPostGeoLocation',
contentType: "application/json; charset=utf-8",
dataType: "json"
}).done(function (data) {
console.log(data.result);
})
}
Я знаю, что часть кода - это не совсем то, что мне нужно, но я просто скопировал из Интернета и отредактирую, когда я опередил это препятствие.