Привязка модели не работает в Asp.net Core 3.0 - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть модель, определенная как

public class Family
{
    public int ID { get; set; }
    public string Name { get; set; }

    public string Address { get; set; }
}

Когда я использовал это в контроллерах Web Api, я ожидал, что входная модель faimly имеет только свойство name, но игнорирует свойство address (null или empty). PostMan Json Body:

 {
"Name": "Faimly1",
"Address":"Address1"
 }

    [HttpPost]
    public async Task<ActionResult<Family>> PostFamily([FromBody][Bind("Name")] Family family)
    {
        Console.WriteLine(family.Name); // Expect the string "Family1".
        Console.WriteLine(family.Address); // Should be empty even I have passed a string value.
    }

Когда я использую Postman для проверки действия, я все равно получаю значение Address. Что я должен делать? Я протестировал это как в asp.net core 3.0, так и в asp.net core 2.1 и получил одинаковый результат.

Или эта привязка работает только с помощником тегов?

1 Ответ

0 голосов
/ 10 ноября 2019

Вместо BindAttribute вы можете попробовать использовать JsonIgnoreAttribute в классе вашей модели:

public class Family
{
    public int ID { get; set; }
    public string Name { get; set; }

    [JsonIgnore]
    public string Address { get; set; }
}
...