Перегрузка post для FromUri и FromBody
От: AK107  
Дата: 21.01.17 11:29
Оценка:
Приветствую.

есть класс оборудования:
class Equipment
{
  [Required] Guid TypeId;
  [Required] string SerialNumber;
}


Хочу такие перегрузки post метода:

1. принимающего одну единицу оборудования FromUri
public IHttpActionResult Create([FromUri]Equipment equipment)


2. принимающего массив оборудования FromBody
public IHttpActionResult Create([FromBody]Equipment[] equipments)

такое вообще возможно сделать для одного route?
Отредактировано 21.01.2017 11:42 AndrewVK . Предыдущая версия .
asp.net mvc routing
Re: Перегрузка post для FromUri и FromBody
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.01.17 11:42
Оценка:
Здравствуйте, AK107, Вы писали:

AK>1. принимающего одну единицу оборудования FromUri

AK>
AK>public IHttpActionResult Create([FromUri]Equipment equipment)
AK>


AK>2. принимающего массив оборудования FromBody

AK>
AK>public IHttpActionResult Create([FromBody]Equipment[] equipments)
AK>

AK>такое вообще возможно сделать для одного route?

Для одного, разумеется, нет — как, по твоему, выбирать какой метод звать в этом случае?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: Перегрузка post для FromUri и FromBody
От: AK107  
Дата: 21.01.17 11:44
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Для одного, разумеется, нет — как, по твоему, выбирать какой метод звать в этом случае?


хотелось бы в зависимости от наличия параметров (required) в в url
как я понимаю route такого не поддерживает

может есть идея как route назвать?
Отредактировано 21.01.2017 11:45 AK107 . Предыдущая версия .
Re[3]: Перегрузка post для FromUri и FromBody
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.01.17 11:49
Оценка:
Здравствуйте, AK107, Вы писали:

AK>хотелось бы в зависимости от наличия параметров (required) в в url

AK>как я понимаю route такого не поддерживает

Почему не поддерживает? Регистрируешь два разных роутинга для разных методов. Единственное, сами параметры должны быть в основной части url, а не в query parameters — ограничение uri templates.
Если же непременно хочется в query parameters параметры — поиграйся с IRouteConstraint
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: Перегрузка post для FromUri и FromBody
От: rameel https://github.com/rsdn/CodeJam
Дата: 21.01.17 12:02
Оценка: 2 (1)
Здравствуйте, AK107, Вы писали:

AK>такое вообще возможно сделать для одного route?


Можно. Смотри ActionMethodSelectorAttribute.
public sealed class EquipmentMethod : ActionMethodSelectorAttribute
{
    public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
    {
        var request = controllerContext.HttpContext.Request;
        // здесь твоя проверка
    }
}
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: Перегрузка post для FromUri и FromBody
От: Vladek Россия Github
Дата: 22.01.17 12:27
Оценка:
Здравствуйте, AK107, Вы писали:

AK>2. принимающего массив оборудования FromBody

AK>
AK>public IHttpActionResult Create([FromBody]Equipment[] equipments)
AK>

AK>такое вообще возможно сделать для одного route?

[HttpPost]
public IHttpActionResult Create(Equipment equipment, Equipment[] equipments)


Так разве не работает?

P.S.: параметры передаются через URL только для метода GET.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.