C# 如何检查POST请求中的浮点值是否为空
我想知道当我发送一个浮点值时,我应该如何检查POST请求是否发送数据,我尝试对POST请求中给出的所有值使用if语句,但我不能对浮点值使用if语句,因为它不能为null。这是我的发帖要求。对大多数人来说,它可能看起来很难看,但我不熟悉ASP.NET MVCC# 如何检查POST请求中的浮点值是否为空,c#,asp.net-mvc,post,http-post,C#,Asp.net Mvc,Post,Http Post,我想知道当我发送一个浮点值时,我应该如何检查POST请求是否发送数据,我尝试对POST请求中给出的所有值使用if语句,但我不能对浮点值使用if语句,因为它不能为null。这是我的发帖要求。对大多数人来说,它可能看起来很难看,但我不熟悉ASP.NET MVC [HttpPut("Product/Edit/{productid}")] public IActionResult ProductEdit(string token, int productid, [FromBody]Product
[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();
}
价格是浮动的,股票是整数,所以我试着用if语句来做,就像我对其他语句做的一样,但由于上面提到的原因,它不能做。我试过在这段文字下面剪下这段代码,但当我这样做并发送一个POST请求时,我的DB将更新为一个空的价格和库存值
if(p.Price.ToString() != null)
{
edit.Price = p.Price;
} else {
edit.Price = edit.Price;
}
所有这些的if语句都会检查post请求发送的值是否为空,否则将保留数据库中的原始值
任何帮助或建议都将不胜感激,我很高兴看到我是一名学生,所以任何评论都可以。正如您提到的,价格是浮动类型,因此默认情况下,如果您第一次不保存任何值,它将为0.0f,所以只需与价格>0进行比较即可 像这样更改代码
if(p.Price>0)
{
edit.Price = p.Price;
} else {
edit.Price = edit.Price;
}
正如Taskin提到的,price是float类型,因此默认情况下它将为0。 所以,试着像下面这样设定你的价格
edit.Price = p.Price != edit.Price ? p.Price : edit.Price;
你可以这样做
if (p.Price.Equals(null))
{
edit.Price = edit.Price;
}
else
{
edit.Price = p.Price;
}
你真的需要其他部分代码吗?属性值已存在。也可以考虑使用模型验证来验证。@ SyJu:是的,我需要其他的,否则,如果我不把一个值传递给那个属性,它会发送一个空字符串,例如,如果我做一个POST请求,我只想更新描述,我也不想更新股票和价格。if语句使得当我在POST请求中不传递其他值时,情况并非如此。但实际上我还没有测试过,所以我打算不用其他工具也试一下,但这仍然不能解决我的问题。另外,我已经在使用验证。如果是折扣和负价格呢?@Jeremythonpson我认为价格输入不会是负的。如果有任何折扣字段,但没有任何折扣字段的迹象,则应从服务器端对其进行调整。在现实生活中,您不会将价格金额保存为负值。我们不会为该项目提供折扣,但如果我们这样做,我们会采取不同的做法,然后将折扣价格保存在控制器中,但是谢谢你的建议。@TaskinKhaleque如果你不认为使用负美元和单位价格,你就没有在金融业工作过。事实上,许多会计制度依赖于美元负值。资产负债表。