Лучшие практики на бритвенных страницах: использование AJAX или обработчиков для запросов post / get - PullRequest
1 голос
/ 04 июля 2019

Вообще говоря, когда вы делаете запрос POST, вы хотите перезагрузить страницу. Хотя не всегда. При использовании метода GET для извлечения данных вы можете рассмотреть возможность использования AJAX. Однако я относительно новичок в Razor Pages и ядре ASP.net в целом. Мне говорят, что мы всегда должны загружать страницу. Так как мы используем Razor Pages, неправильно использовать AJAX для отправки чего-либо в код. В противном случае, какова цель использования Razor Pages.

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

Какая лучшая практика с Razor Pages? Кажется, если вы должны перезагружать каждый раз, когда мы возвращаемся в 2003 г.

1 Ответ

1 голос
/ 07 июля 2019

Совершенно нормально использовать AJAX для отправки в выделенный код Razor Pages, на этом я построил панель администратора блогового приложения с удовлетворительными результатами https://github.com/FanrayMedia/Fanray

Класс модели Razor Pagesслужит удобными конечными точками, которые возвращают JSON вашим вызовам AJAX.Например, композитор моего блога, который является страницей Razor, имеет черновик с автоматическим сохранением, в представлении у меня есть js код как

axios.post('/admin/compose?handler=save', this.payload, { headers: { 'XSRF-TOKEN': this.tok } }) ...

который публикует этот код класса модели позади

public async Task<JsonResult> OnPostSaveAsync([FromBody]PostVM post)
{
  ...

  return new JsonResult(postVM);
}

Надеюсь, это поможет!

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