В URL-адресе POST отсутствует строка запроса обработчика на странице Razor

У меня проблема, когда в моем URL-адресе отправки формы нет строки запроса, указывающей на обработчик в заднем коде. В результате я получаю ошибку 400 (неверный запрос).

URL-адрес запроса выглядит так: http://localhost:60900/EventRename

Когда это должно выглядеть так: http://localhost:60900/EventRename?handler=RenameEvent

Вот .cshtml

<form asp-page-handler="RenameEvent" method="post">
    <div class="form-group">
        <label asp-for="RenameDataSource"></label>
        @Html.DropDownListFor(x => x.RenameDataSource, Model.DataSources, "-- select data source --")
    </div>
    <div class="form-group">
        <label asp-for="RenameTempEvent"></label>
        @Html.DropDownListFor(x => x.RenameTempEvent, Model.RenameTempEvents, "-- select event type --")
    </div>
    <div class="form-group">
        <label asp-for="NewName"></label>
        @Html.DropDownListFor(x => x.NewName, Model.EventTypes, "-- select event type --")
    </div>
    <div class="form-group">
        <button type="submit">Start Renaming</button>
    </div>
</form>

Это может быть связано, но я также заметил, что в данных формы отсутствует «__RequestVerificationToken», который по умолчанию должен быть включен в страницы Razor?

Чтобы уточнить, я не ожидаю увидеть данные из формы в URL-адресе. Я ожидаю увидеть ссылку на обработчик, чтобы Razor Code Behind знал, какой метод запускать при отправке формы. См. Этот раздел: https://docs.microsoft.com/en-us/aspnet/core/razor-pages/#multiple-handlers-per-page the URL path that submits to OnPostJoinListAsync is http://localhost:5000/Customers/CreateFATH?handler=JoinList


person Lukeyb    schedule 03.07.2018    source источник


Ответы (2)


@using (Html.BeginForm(ActionName, ControllerName, new { handler = "value of your handler" }, FormMethod.Post))

Теперь вы можете отправить форму, в которой будет указано значение.

person Nikhil Mokariya    schedule 03.07.2018

ваш метод формы - это post, попробуйте использовать get, если вы хотите увидеть строку данных в URL-адресе. https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data

person markantonay    schedule 03.07.2018
comment
Я не ожидаю увидеть данные формы, но почтовый запрос будет направлен на конкретный URL-адрес, указанный обработчиком asp-страницы. См. Нижнюю часть этого раздела здесь: docs.microsoft.com/en-us/aspnet/core/razor-pages/ - person Lukeyb; 03.07.2018