Мне интересно, как я должен проверять, отправляет ли запрос POST данные или нет, когда я отправляю значение с плавающей запятой, я пытаюсь сделать это с помощью операторов if для всех значений, которые я даю в запросе post, но я не могу использоватьоператор if для значения с плавающей точкой, потому что он не может быть нулевым.вот мой почтовый запрос.большинству людей это может показаться очень уродливым, но я не знаком с ASP.NET MVC
[HttpPut("Product/Edit/{productid}")]
public IActionResult ProductEdit(string token, int productid, [FromBody]Product p)
{
bool RoleId = JWTValidator.RoleIDTokenValidation(token);
var edit = _context.products.Find(productid);
if (RoleId)
{
if (p.Name != null)
{
edit.Name = p.Name;
}
else
{
edit.Name = edit.Name;
}
if (p.Description != null)
{
edit.Description = p.Description;
}
else
{
edit.Description = edit.Description;
}
edit.Price = p.Price;
if (p.FirstImg != null)
{
edit.FirstImg = p.FirstImg;
}
else
{
edit.FirstImg = edit.FirstImg;
}
edit.Stock = p.Stock;
if (ModelState.IsValid)
{
_context.products.Update(edit);
_context.SaveChanges();
}
else
{
return BadRequest(ModelState);
}
return Ok("Product updated");
}
return Unauthorized();
}
Цена - это число с плавающей точкой и акция в int, поэтому я пытаюсь сделать это с помощью оператора if, как сдругие, но это не может быть сделано из-за вышеупомянутой причины.я пробовал это (код подрезан под этим текстом), но когда я делаю это и отправляю запрос POST, моя БД обновляется с пустым значением цены и запаса.
if(p.Price.ToString() != null)
{
edit.Price = p.Price;
} else {
edit.Price = edit.Price;
}
оператор if во всех этих проверках проверяет, является ли значение, полученное при отправке с запросом на публикацию, пустым или нет, в противном случае будет сохранено исходное значение в БД.
Любая помощьили предложения будут с благодарностью, я рад узнать, как я студент, поэтому любые замечания будут в порядке.