在ASP.NET Core 3.1中,可以通过依赖注入来自动绑定控制器操作的[FromBody]参数。下面是一个示例解决方法:
首先,需要在Startup.cs文件的ConfigureServices方法中注册依赖注入服务。例如,假设我们有一个名为MyService的服务类:
public class MyService
{
public string GetHelloMessage()
{
return "Hello World!";
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddScoped(); // 注册MyService服务
}
接下来,在控制器中,可以通过构造函数注入MyService,并在需要使用的方法中使用[FromBody]参数来自动绑定请求体的内容:
[ApiController]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
private readonly MyService _myService;
public MyController(MyService myService)
{
_myService = myService;
}
[HttpPost]
public IActionResult PostMessage([FromBody] string message)
{
string helloMessage = _myService.GetHelloMessage();
return Ok($"{helloMessage} {message}");
}
}
在上面的示例中,我们在控制器的构造函数中注入了MyService,并在PostMessage方法中使用[FromBody]参数来自动绑定请求体中的字符串内容。然后,我们调用MyService的GetHelloMessage方法,将其与请求体中的内容合并,并返回结果。
这样,当我们发起POST请求到/api/MyController的时候,请求体中的字符串内容将会被自动绑定到PostMessage方法的[FromBody]参数中,并且可以通过依赖注入使用MyService服务。
上一篇:ASP.NET Core 3.1托管服务按给定的计划运行多次(它应该每天运行一次)。
下一篇:ASP.NET Core 3.1为React应用程序提供静态文件服务:找到index.html和图标,但找不到js文件。