У меня довольно простая проблема, которую я не могу решить.System.Net.Http.HttpClient добавляет @ в конце ключей JSON. Зачем?
У меня есть метод действий, определенный как это:
[HttpPut]
public ActionResult Register(ClientRegistrationInformation clientInformation)
{ ... }
ClientRegistrationInformation определен в F #, как это:
type ClientRegistrationInformation() =
member val ClientKey = Guid.Empty with get, set
member val ValidationToken = String.Empty with get, set
Я хочу вызвать этот метод действия, используя System.Net.Http.HttpClient , Когда я пытаюсь это:
httpClient.PutAsJsonAsync (RegisterUrl, clientInformation)
содержание JSON отправляется так, что не работает:
"{\"[email protected]\":\"8cb33ed5-ef49-4c40-afbe-78f0c198448e\",\"[email protected]\":\"token\"}"
Когда я пытаюсь то же самое, используя jQuery.ajax, содержание передается так, что DOES work:
"{\"ClientKey\":\"8cb33ed5-ef49-4c40-afbe-78f0c198448e\",\"ValidationToken\":\"token\"}"
Почему HttpClient добавляет ненужные символы @ в конце имен? Как я могу избавиться от них?
Спасибо.
Это интересно, вы можете подумать о том, как сообщить об этом команде F #. – rossisdead
Собственно, это известное поведение. MSDN даже предупреждает не использовать их в фреймворках (см. Раздел «Предупреждение»): http://msdn.microsoft.com/en-us/library/dd483467.aspx –