I\'m trying to post form serialized values to controller (Web API Self Host). I cannot understand why the NameValueCollection is not correctly bound. Client-side using jQuer
Thanks Scott. Your answer was just what I needed. Based on it, I wrote the following little utility method that will come in handy as it pulls all the data values out of the stream (using the FormDataCollection) and puts them into a NamedValueCollection (which you can access in any order you want).
/// <summary>
/// Copy the values contained in the given FormDataCollection into
/// a NameValueCollection instance.
/// </summary>
/// <param name="formDataCollection">The FormDataCollection instance. (required, but can be empty)</param>
/// <returns>The NameValueCollection. Never returned null, but may be empty.</returns>
public static NameValueCollection Convert(FormDataCollection formDataCollection)
{
Validate.IsNotNull("formDataCollection", formDataCollection);
IEnumerator<KeyValuePair<string, string>> pairs = formDataCollection.GetEnumerator();
NameValueCollection collection = new NameValueCollection();
while (pairs.MoveNext())
{
KeyValuePair<string, string> pair = pairs.Current;
collection.Add(pair.Key, pair.Value);
}
return collection
}
Or you can use the build "ReadAsNameValueCollection", like this :
NameValueCollection MyNameValueCollection = formData.ReadAsNameValueCollection();
Instead of NameValueCollection, try FormDataCollection.
http://weblogs.asp.net/cibrax/archive/2012/08/10/binding-form-data-in-asp-net-web-api.aspx