I\'m creating a new webapi using attribute routing to create a nested route as so:
// PUT: api/Channels/5/Messages
[ResponseType(typeof(void))]
[
Oh dear, this may be a new record for answering my own question.
return CreatedAtRoute("DefaultApi", new { controller = "messages", id = message.Id }, message);
does the trick. i.e. explicitly specifying the controller. I worked this our by seeing that the exception was related to the UrlHelper and reading its docs...