Тестируйте входящие электронные письма Mailgun локально

Я реализую функцию получения входящих писем от Mailgun. Я создал действие:

[Route("incoming-email/notify")]
[HttpPost]
public async Task<IActionResult> NotifyIncomingEmail([FromForm] CreateIncomingEmailCmd cmd)
{ ... }

и хотите отладить его локально (отправить на локальный хост), чтобы проверить, правильно ли сопоставлены параметры.

Так, например, если я отправляю через Postman как параметр x-www-form-urlencoded body-html, он не сопоставляется с моим свойством BodyHtml класса CreateIncomingEmailCmd, и [JsonProperty("body-html")] не помогает.

Как я могу это сделать?


person A. Gladkiy    schedule 25.02.2019    source источник


Ответы (1)


Вы можете попробовать использовать ModelBinder, чтобы указать имя свойства, как показано ниже:

public class CreateIncomingEmailCmd
{
    [ModelBinder(Name = "body-plain")]
    public string BodyPlain { get; set; }

    [ModelBinder(Name = "body-html")]
    public string BodyHtml { get; set; }
}
person Xueli Chen    schedule 26.02.2019
comment
Мой класс CreateIncomingEmailCmd находится в отдельном проекте (.NET Standard), поэтому я не могу использовать здесь пространство имен Microsoft.AspNetCore.Mvc. - person A. Gladkiy; 26.02.2019