Должны ли мы использовать FromQuery или ModelBinder для привязки модели к параметрам запроса - PullRequest
0 голосов
/ 16 апреля 2020

Я видел, что оба атрибута FromQuery и ModelBinder работают для отображения параметров запроса в модели свойств с разными именами. Но какой из них следует использовать? Я не могу найти ничего в документации, указывающей, какой использовать. Обратите внимание, что ModelBinder требует ссылки на дополнительный пакет.

В следующем примере у меня есть маршрут GET api/mycontroller?filter=test&page=mypage

[HttpGet]
public IActionResult Get([FromQuery] MyFilter)
{
    return Ok();
}

У меня также есть модель, которую я хочу сопоставить с моим запросом строки. Мое имя свойства MyCustomFilter этой модели не соответствует имени строки запроса filter.

public class MyFilter
{
    [FromQuery(Name='filter')]
    public string MyCustomFilter { get; set;}

    public string Page { get; set;}
}

Здесь я использую атрибут FromQuery, чтобы указать соответствие между filter и MysCustomFilter, но я также мог бы использовать атрибут ModelBinder:

public class MyFilter
{
    [ModelBinder(Name='filter')]
    public string MyCustomFilter { get; set;}

    public string Page { get; set;}
}

Какой из них лучше?

...