我有一个看起来像的模型.
public class StoreItemviewmodel { public Guid ItemId { get; set; } public List<Guid> StoreIds { get; set; } [required] public string Description { get; set; } //[required] //[DataMember(Isrequired = true)] public int ItemTypeId { get; set; } }
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; }
原文地址:https://www.jb51.cc/csharp/92962.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。