Проблемы с FromFormAttribute и десериализацией в As pNet Core 3.1 Api - PullRequest
0 голосов
/ 10 июля 2020

Я использую десериализатор Newtonsoft и пытаюсь отправить данные (с FromFormAttribute) этим методом:

[HttpPut("test")]
public IActionResult Test([FromForm] MyClass Test) {           
    return Ok();
}

также, у меня есть класс:

public class MyClass
{
    public int Id { get; protected set; }
    public string Text { get; protected set; }

    public MyClass(int id, string text) {
        Id = id;
        Text = text;
    }
}

Когда я пытаюсь отправить данные в методе HttpPut я получаю

System.InvalidOperationException: Could not create an instance of type 'MyClass'. 
Model bound complex types must not be abstract or value types and must have a parameterless constructor.
Alternatively, give the 'test' parameter a non-null default value.

Я не создавал конструктор без параметров и имел защищенные сеттеры, потому что он отлично работает в других методах с FromBodyAttribute.
Что я делаю не так?

1 Ответ

0 голосов
/ 10 июля 2020

просто добавьте конструктор без параметров

 public class MyClass
        {
            public int Id { get; set; }
            public string Text { get; set; }
            

            public MyClass()
            {
            }
            public MyClass(int id, string text)
            {
                Id = id;
                Text = text;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...