Я использую новый MVC4 ApiController для создания интерфейса поиска; что-то вроде этого:
public IEnumerable<RecordSummaryType> Get( ... )
{
var list = MyService.GiveMeTheList( ... );
return list;
}
public SingleRecordDetailType Get(long id)
{
var result = MyService.GiveMeASingleValue(id);
return result;
}
По какой-то причине в этом случае вызов IEnumerable учитывает согласование содержимого — т. е. когда я передаю application/xml в заголовках принятия запроса, он возвращает XML, а когда я передаю application/json, он возвращает JSON — но только вызов SingleRecordType возвращает JSON, даже если вы запрашиваете XML.
Итак, мой вопрос: есть ли различия в том, как MVC 4 обрабатывает коллекции по типам с одним значением? Или, что более вероятно, есть ли в MVC ловушки, с помощью которых можно непреднамеренно отключить согласование содержимого для определенных вызовов. ?