我有一个看起来像的模型.
我有一个小帮手,使用的是使用RestSharp.
- public static IRestResponse Create<T>(object objectToUpdate,string apiEndPoint) where T : new()
- {
- var client = new RestClient(CreateBaseUrl(null))
- {
- Authenticator = new HttpBasicAuthenticator("user","Password1")
- };
- var request = new RestRequest(apiEndPoint,Method.POST);
- //request.JsonSerializer = new JsonSerializer();
- // {RequestFormat = DataFormat.Json};
- request.AddObject(objectToUpdate);
- // clientJsonSerializer = new YourCustomSerializer();
- var response = client.Execute<T>(request);
- return response;
- }
调试控制器在我的api
- [HttpPost]
- public HttpResponseMessage Create([FromBody]StoreItemviewmodel myProduct)
- {
- //check fields are valid
- .........
- }
我的产品产品全部与公共List Store集成,它总是返回单一的奖励与空的Guid.即使我添加了两个或更多StoreIds
我假设这是因为我的应用程序中的“创建”帮助器发生错误.
任何人都可以帮助这个导致头痛的事情.
发送到webapi的原始数据看起来像
- ItemId=f6dbd244-e840-47e1-9d09-53cc64cd87e6&ItemTypeId=6&Description=blabla&StoreIds=d0f36ef4-28be-4d16-a2e8-37030004174a&StoreIds=f6dbd244-e840-47e1-9d09-53cc64cd87e6&StoreId=d0f36ef4-28be-4d16-a2e8-37030004174a
解决方法
我设法得到这个工作.我不认为它是正确的方式,但它的作品.
- public static IRestResponse Create<T>(object objectToUpdate,"Password1")
- };
- var json = JsonConvert.SerializeObject(objectToUpdate);
- var request = new RestRequest(apiEndPoint,Method.POST);
- request.AddParameter("text/json",json,ParameterType.RequestBody);
- var response = client.Execute<T>(request);
- return response;
- }