Я пробую ASP.NET Core MVC и не могу получить маршрут, работающий с параметром, отмеченным [FromBody]
. Я использую ASP.NET Core 2.2, работающий на .NET Framework (полный, а не основной). Вот весь мой контроллер:
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
namespace EmailSch.Api.Controllers
{
[ApiController]
[Route("/api")]
public class EmailJobController : ControllerBase
{
public EmailJobController() { }
[Route("emailsch/job"), HttpPost]
public IActionResult RunEmailJob([FromBody]string options)
{
return Ok();
}
}
}
Я пытаюсь вызвать его из PowerShell, используя:
Invoke-RestMethod -Uri http://localhost:9000/api/emailsch/job -Metod Post -Body«Привет!»
Результат:
Invoke-RestMethod: удаленный сервер возвратил ошибку: (500) Внутренняя ошибка сервера.
В моем коде нет исключений и не срабатывают точки останова. Если я уберу параметр:
public IActionResult RunEmailJob()
{
return Ok("Hi");
}
Работает нормально. Что-нибудь, что мне нужно настроить в моем автозагрузке, чтобы это работало? Вот весь мой класс Startup:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvcWithDefaultRoute();
}
}