将C#对象发送到Webapi控制器api配置为存储发布到它的产品类型的对象。我已经使用JqueryAjax方法成功添加了对象,现在我正尝试在C#中实现相同的目的。我创建了一个简单的控制台应用程序来向api发送Post请求:publicclassProduct{publicintId{get;放;}公共字符串名称{得到;放;}公共字符串类别{得到;放;}publicdecimalPrice{get;放;}}staticvoidMain(string[]args){stringapiUrl=@"http://localhost:3393/api/products";varclient=newHttpClient();client.PostAsJsonAsync(apiUrl,newProduct(){Id=2,Name="Jeans",Price=200,Category="Clothing"});postproduct方法永远不会被调用,我如何将这个对象发送到控制器?添加item的方法:publicHttpResponseMessagePostProduct([FromBody]Productitem){item=repository.Add(item);varresponse=Request.CreateResponse(HttpStatusCode.Created,item);stringuri=Url.Link("DefaultApi",new{id=item.Id});response.Headers.Location=newUri(uri);返回响应;看起来你以某种方式禁止接受JSON作为发布格式。我能够使用application/x-www-form-urlencoded将数据发送到您的终端并创建新产品。这可能就是您的jQuery请求的处理方式。你能显示你的webapi的配置代码吗?您是否更改了默认格式化程序?或者您可以从HttpClient发送表单。比如以上就是C#学习教程:SendingC#objectstothewebapicontroller分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—stringapiUrl="http://producttestapi.azurewebsites.net/api/products";varclient=newHttpClient();varvalues=newDictionary(){{"Id","6"},{"Name","Skis"},{"Price","100"},{"Category","Sports"}};varcontent=newFormUrlEncodedContent(值);varresponse=awaitclient.PostAsync(apiUrl,content);响应.EnsureSuccessStatusCode();,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
