Бритва с именем обработчик и BindProperty - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь отправить запрос на публикацию ajax на страницу бритвы.Эта страница бритвы имеет некоторые общедоступные свойства с [BindProperty].Для запроса ajax я пытаюсь использовать именованный обработчик.

@page "{title}"

[BindProperty]
public BookViewModel BookModel { get; set; }

public IActionResult OnPostMarkdownInput(string title)
{
    return new EmptyResult();
}

На стороне клиента отправка пустых данных (+ / title) заканчивается BadRequest.Но отправка с формой, которая связывает BookModel работает.Поэтому я подозревал, что [BindProperty] требует, чтобы это свойство было привязано даже для namedHandler.Но проблема сохранилась даже после ее удаления.

Как я могу добавить namedHandler, который не требует привязки каких-либо свойств?Или почему я получаю BadRequest, если данные не отправляются?

Спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

Плохой ответ на запрос, инициированный AJAX-запросом в Razor Pages, обычно является признаком отсутствующего маркера подтверждения запроса, который необходимо включить в качестве значения формы или заголовка в зависимости от типа запроса, который вы делаете.Если вы публикуете JSON, вам нужно добавить заголовок:

$.ajax({
    type: "POST",
    headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
    url: "/yourformhandler",
    ...

В противном случае вам просто нужно убедиться, что скрытое поле включено в публикуемые значения.

Подробнее о проверке запросаздесь: https://www.learnrazorpages.com/security/request-verification

...