【发布时间】:2019-10-29 23:57:44
【问题描述】:
我正在试用 ASP.NET Core MVC,但无法使用标有 [FromBody] 的参数获取路由。我正在使用在 .NET Framework(完整,非核心)上运行的 ASP.NET Core 2.2。这是我的整个控制器:
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 从 PowerShell 调用它:
Invoke-RestMethod -Uri http://localhost:9000/api/emailsch/job -Method Post -Body 'Hello there'
结果是:
Invoke-RestMethod : 远程服务器返回错误:(500) Internal Server Error.
我的代码中没有抛出异常,也没有触发断点。如果我删除参数:
public IActionResult RunEmailJob()
{
return Ok("Hi");
}
它工作正常。我需要在 Startup 中设置什么才能使其正常工作吗?这是我的整个 Startup 课程:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvcWithDefaultRoute();
}
}
【问题讨论】:
标签: asp.net-core asp.net-mvc-5 kestrel-http-server