Это можно сделать с помощью стандартной формы или формы ajax.
Вариант 1 - Стандартная форма:
добавить атрибут asp-page-handler
к кнопке и указать имя соответствующего метода, а также наback end создайте соответствующий метод с префиксом OnPost.
<form method="post">
<button type="button" asp-page-handler="RunMethod">execute method</button>
</form>
Метод backend:
public IActionResult OnPostRunMethod()
{
//do whatever...
}
Вариант 2 - форма ajax:
Используйте data-ajax-url="?handler=RunMethod"
непосредственно внутриатрибуты формы или вы можете использовать скрипт, чтобы назначить соответствующий обработчик метода для формы, при таком подходе вы можете использовать несколько кнопок внутри одной формы AJAX:
<form method="post" id="myForm"
data-ajax="true"
data-ajax-method="post"
data-ajax-loading="#loading"
data-ajax-failure="failed"
data-ajax-update="#updateMsg">
<button type="submit" id="RunMethod">execute method</button>
</form>
@section Scripts{
<partial name="_ValidationScriptsPartial" />
<script src="~/lib/jquery-ajax-unobtrusive/dist/jquery.unobtrusive-ajax.min.js"></script>
<script>
failed = function (xhr) {
alert('Status: {xhr.status}, Status text: {xhr.statusText}');
}
$("#RunMethod").on("click", function () {
$("#myForm").attr("data-ajax-url", "?handler=RunMethod");
});
});
</script>
}
Бэкэнд-метод:
public IActionResult OnPostRunMethod()
{
//do whatever...
}
см. Образцы здесь