Ответ 1
Веб-API ASP.NET стал значительно более надежным в работе с различными сценариями HTTP, особенно потоковыми. Так как только форматы медиафайлов обычно касаются содержимого и должны согласовывать содержимое.
В ASP.NET MVC тип содержимого application/x-www-form-urlencoded
является гражданином первого класса (и рассматривается особенно потому, что это тип контента 95% запросов POST), и мы имеем FormsCollection
для предоставления доступа к словарю в доступе, когда он определяется как входной параметр.
В веб-API ASP.NET application/x-www-form-urlencoded
является еще одним типом содержимого и должен быть прочитан его MediaTypeFormatter. Поскольку такой веб-API ASP.NET не может делать никаких предположений о Forms
.
Обычный подход в ASP.NET Web API заключается в представлении формы в качестве модели, поэтому форматор медиа-типа десериализует его. Альтернативой является определение параметра действий как NameValueCollection
:
public void Post(NameValueCollection formData)
{
var value = formData["key"];
}