Получаю «No MediaTypeFormatter доступен для чтения объекта типа« Продукт »из контента с типом медиатекста« текст/plain "Ошибка в консоли, когда я пытаюсь опубликовать данные своей формы в файл JSON с помощью ASP.NET WEBAPIНет MediaTypeFormatter доступен для чтения объекта типа «Продукт» из контента со носителем типа «text/plain»
Я не размещаю свой 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;
}
Ваше сообщение об ошибке и код не совпадают, то жалуется, что содержание 'текст/plain', но, основываясь на вашем почтовом коде должно быть' приложение/JSon '. Вы использовали что-то вроде скрипача, чтобы проверить фактический запрос POST, чтобы убедиться, что он доставлен правильно? – CodingGorilla
Да. Я использовал Fiddler для проверки моего POST-запроса и в том, что я могу видеть, что мой запрос находится в правильном формате, и я тоже могу JSON. Проблема происходит в .then() функции я думаю, promisePost.then (функция (мн.ч.) {$ scope.ProductName = pl.data.ProductName; // loadRecords();} –
Вы осмотрите 'контент- Заголовок типа? Я подозреваю, что это происходит в вашем 'then', потому что это то, что получает ошибку 500 от API? – CodingGorilla