![](/img/trans.png)
[英]No MediaTypeFormatter is available to read an object of type 'String' from content with media type 'text/plain'
[英]No MediaTypeFormatter is available to read an object of type 'Product' from content with media type 'text/plain'
我收到“沒有MediaTypeFormatter可用於從媒體類型為“文本/純文本”的內容中讀取類型為“產品”的對象”的控制台錯誤,當我嘗試使用ASP.NET WEBAPI將表單數據發布到JSON文件時
我沒有在這里發布我的html文件,因為html中沒有錯誤。 發送請求時出現錯誤。
請幫助我,因為我現在陷入困境,無法繼續前進。
控制器調用Post方法:
var promisePost = crudService.post(Product);
promisePost.then(function (pl) {
$scope.ProductName = pl.data.ProductName;
//loadRecords();
}, function (err) {
console.log("Err" + err);
});
服務中的過帳方法:
this.post = function (Product) {
var request = $http({
method: "post",
url: "http://localhost:50326/api/Products/",
data: Product,
contentType: 'application/json; charset=utf-8'
//Content-Type: application/json
});
return request;
}
WebApi方法:
public void Post([FromBody]Product product)
{
ProductsRepository repository = new ProductsRepository();
var newproduct = repository.Save(product);
//return newproduct;
}
internal Product Save(Product product)
{
var products = this.Retrieve();
var maxId = products.Max(p => p.ProductId);
product.ProductId = maxId + 1;
products.Add(product);
WriteData(products);
return product;
}
private bool WriteData(List<Product> products)
{
var filePath = HostingEnvironment.MapPath(@"~/App_Data/Products.json");
var json = JsonConvert.SerializeObject(products, Formatting.Indented);
System.IO.File.WriteAllText(filePath, json);
return true;
}
嘗試通過以下方式發布數據:
$http.post(
'http://localhost:50326/api/Products/',
JSON.stringify(Product),
{
headers: {
'Content-Type': 'application/json'
}
}
);
請注意,您無需指定char編碼(我從未見過Contet-Type標頭中包含該部分。請參見: “ Content-type:application / json; charset = utf-8”的含義是什么?是什么意思?
還要注意,使用JSON.stringify
將參數序列化為JSON以確保格式正確。
在API Formatter中
SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"));
SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/plain"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.