와 모델 매개 변수에 실패합니다. 그것은 기본적으로 Json.NET을 사용하는 것, 또한, 내가 사용할 수 없습니다 설정 UseDataContractJsonSerializer = 사실 원인 나는 여기 Web.Api의 직렬화 내가 URL 인코딩 된 데이터를 매개 변수로 모델 [AccountLinkRequest]을 하나의 방법을 가지고 다른 이름
[HttpPost]
public SomeResponse Link(AccountLinkRequest request)
{
if (request.CustomerId == null)
throw new Exception("Deserialization error here, pls help!");
// other actions
}
내 모델 클래스 (다른 방법의) 일반적인 출력 응답 모델로 한 :
[DataContract]
[JsonObject]
public class AlertAccountLinkRequest
{
[DataMember(Name = "id")]
public string id { get; set; }
[DataMember(Name = "customer_id")]
[JsonProperty("customer_id")]
public string CustomerId { get; set; }
}
문제 : request.CustomerId가에 allways 널입니다. 이 요청은 매우 간단하다 :
web_service_URL/링크 CUSTOMER_ID = CUSTOMER_ID & ID = 아이디 (URL 인코딩)
내가 대신 고객 ID의 CUSTOMER_ID를 사용하는 경우, 모든 것이 잘 될 것입니다,하지만 난 jedy에있어? -방법. 고맙습니다!
Radim이없는, 응답을 주셔서 감사합니다. 나는 여전히 DataMember/JsonProperty가 그것을 제공하지 않는다고 믿을 수 없다. ORM과 마찬가지로 열 이름 대신 속성 이름을 정의 할 수 없습니다. 는 Btw은 Json.NET 5.0 업데이트가 있었다, 그러나 아무것도 우리가 ModelBinder를 얘기,이 경우 – EvgeniyK
를 변경하지 않습니다. 우리는 쿼리 문자열의 일부인 쿼리를 변경하여 개체로 변환하려고합니다. 위에서 언급 한 3 가지 방법 만 사용할 수 있습니다. 당신이 말하는 것은 신체의 파싱입니다. 이를 위해 MediaFormatters를 사용합니다. 그리고 이것들은 매우 강력하고 조정 가능하며 확장 가능합니다 ... 그래서 가장 큰 차이가 있습니다. 검색어 대 BODY. 요청 본문에 JSON 속성 (예 :'[JsonProperty (PropertyName = '')])을 사용할 수 있습니다.이 경우가 아닙니다. 내가 아는 나쁜 소식 ( –
이제 보니, 고마워요! – EvgeniyK