Чтобы получить то, что вы хотите - api/controller/66
по вашему запросу PUT
, ваш атрибут HTTP-глагола должен быть изменен на [HttpPut("{id}")]
И еще одна причина, по которой ваш id
получен из строка запроса по умолчанию такова, что привязка параметров в случае запроса PUT
работает таким образом, что примитивный тип привязан к строке запроса запроса, а сложный тип - из тела запроса.
Краткое изложение правила привязки параметров перечислены в этом ответе.