ここの例に従っていますhttp://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operationsしかし、問題が発生していますchrome postman プラグインから投稿リクエストを受け取るようにします。
これが私が投稿しているxmlの例です。Postman の Content-Type ヘッダーを application/xml に設定しました。
<?xml version="1.0" encoding="ISO-8859-1"?>
<Product>
<Category>Groceries</Category>
<Name>New From Post</Name>
<Price>1.39</Price>
</Product>
次のソリューションModel always null on XML POSTも試しましたが、違いはないようです。これが私の WebApiConfig ファイルです。
public static void Register(HttpConfiguration config)
{
config.Formatters.Add(new XmlMediaTypeFormatter());
config.Formatters.XmlFormatter.UseXmlSerializer = true;
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
私は間違いなく正しいエンドポイントに到達しており、デバッグするとアイテムがnullであることがわかります。
public HttpResponseMessage PostProduct(Product item)
{
item = repository.Add(item);
var response = Request.CreateResponse(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { id = item.Id });
response.Headers.Location = new Uri(uri);
return response;
}
何か案は?
編集:また、jsonで同じ値を投稿すると、これはうまくいくようです。ただし、これをxmlでテストできる必要があります。