как обрабатывать POST-запросы на страницах бритвы - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь отправить данные на страницу Razor, но OnPost никогда не вызывается.Он отлично работает с OnGet, но не с POST (по какой-то причине).

Я попытался определить HttpPost без удачи.

Я использую Почтальон для тестирования.

Страница:

@page
@using FFU.Home.Galaxy.Models;

@{
    @functions {
        public void OnPost([FromBody] EmailDataModel model)
        {
            string test = "t";
        }
    }
}

Модель:

public class EmailDataModel
{
    public string Name { get; set; }
    public string Value { get; set; }
}

Данные:

[{"Name":"Name","Value":"bfdbd"},{"Name":"Email","Value":"bdfk@nvfdk.se"},{"Name":"Content","Value":"vd"}]

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Оказывается, это была проблема с токеном Anti-Forgery.Мне не нужна эта функция для этого сайта, поэтому я добавил IgnoreAntiforgeryTokenAttribute, и он работал как положено.

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddRazorPagesOptions(o =>
            o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute()));
0 голосов
/ 13 октября 2018

Добавить [HttpPost] свойство

Как и для почтового запроса

   [HttpPost]
    public void OnPost([FromBody] EmailDataModel model)
    {
        string test = "t";
    }
...