c # бритва, как использовать кнопку HTML для запуска метода? - PullRequest
0 голосов
/ 10 июня 2019

Я хочу использовать кнопку для запуска метода c #, как это сделать? Теперь, если я сделаю кнопку с

<button type="button" onclick="@class.method()" >execute method</button>

он просто выполняет этот метод при загрузке страницы, но не делает это при нажатии кнопки.

Ответы [ 2 ]

2 голосов
/ 10 июня 2019

Это можно сделать с помощью стандартной формы или формы 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...
}

см. Образцы здесь

0 голосов
/ 10 июня 2019

Вам необходимо создать метод-обработчик на странице Razor и использовать атрибут asp-page-handler.См. здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...