Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET CORE 2:模型绑定的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数_Asp.net_Asp.net Core - Fatal编程技术网

ASP.NET CORE 2:模型绑定的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数

ASP.NET CORE 2:模型绑定的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数,asp.net,asp.net-core,Asp.net,Asp.net Core,我想使用IOOptions通过POCO获取配置,但它会抛出错误消息“模型绑定的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数” DatabaseSettings.cs appsettings.json Startup.cs public void配置服务(IServiceCollection服务) { services.AddMvc(); services.Configure(Configuration.GetSection(“数据库设置”)); } 控制器 public IAct

我想使用IOOptions通过POCO获取配置,但它会抛出错误消息“模型绑定的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数”

DatabaseSettings.cs

appsettings.json

Startup.cs

public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.Configure(Configuration.GetSection(“数据库设置”));
}
控制器

public IActionResult创建(IOOptions选项)
{
字符串测试=options.Value.MongoDBServer;
返回视图();
}

我不知道怎么处理。你有什么建议吗?谢谢

我也有同样的问题。我发现这个答案很有帮助

请尝试将[FromServices]添加到控制器操作:

public IActionResult Create([FromServices] IOptions<DatabaseSettings> options)
public IActionResult创建([FromServices]IOptions选项)

您需要将选项注入到构造函数中,而不是注入到操作方法中。谢谢,这解决了这个问题。
"DatabaseSettings": {
    "MongoDBServer": "localhost"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
public void ConfigureServices(IServiceCollection services)
{
      services.AddMvc();
      services.Configure<DatabaseSettings>(Configuration.GetSection("DatabaseSettings"));
}
public IActionResult Create(IOptions<DatabaseSettings> options)
{
  string test = options.Value.MongoDBServer;
  return View();
}
public IActionResult Create([FromServices] IOptions<DatabaseSettings> options)