在ASP.NET Core 3.0中,模型绑定器的行为发生了一些变化。如果您遇到了无法推断模型绑定的问题,可以尝试以下解决方法:
public IActionResult MyAction([FromQuery] string parameter)
{
// 其他代码
}
public IActionResult MyAction([FromBody] MyModel model)
{
// 其他代码
}
public IActionResult MyAction([FromQuery(Name = "parameter")] string myParameter)
{
// 其他代码
}
确保请求的数据正确:确保请求的数据与模型的属性匹配,包括名称和数据类型。如果请求的数据与模型的属性不匹配,模型绑定器可能无法成功推断。
使用分段路由模板:在ASP.NET Core 3.0中,分段路由模板不再自动启用模型绑定。如果您使用分段路由模板,请确保在Startup.cs文件中启用模型绑定。例如:
services.AddControllers(options =>
{
options.ModelBinderProviders.Insert(0, new BodyModelBinderProvider());
});
这些解决方法中的一种或多种应该能够解决模型绑定无法推断的问题。请根据您的具体情况选择适合您的解决方法。