【发布时间】:2018-12-24 10:06:04
【问题描述】:
我正在创建一个 API,它将接受参数(双精度类型)并返回结果。 前任。 http://localhost:54897/api/Power/Nominal/6/-2
在浏览器中,我会看到: 4.0
这是我目前的代码:
型号
public class PowerModel
{
[Required]
[Range(0,50)]
public double PowerFront { get; set; }
[Required]
[Range(-50,-1)]
public double PowerBack { get; set; }
[Required]
public double Result { get; set; }
}
控制器
[Produces("application/json")]
[Route("api/Power")]
public class PowerController : Controller
{
[HttpGet("Nominal/{powerFront}/{powerBack}")]
public double NominalPower(PowerModel powerModel)
{
if (ModelState.IsValid)
{
powerModel.Result = Power.NominalPower(powerModel.PowerFront, powerModel.PowerBack);
return powerModel.Result;
}
else
{
return 0;
}
}
}
通过上面的代码,我可以接受参数,验证它们并返回一个数字结果。
但似乎有些不对劲。我不想在模型状态无效时返回 0,我想在输入无效时返回消息。
接收参数(最好命名)、使用属性验证这些参数、执行计算、在成功输入时返回值或在输入错误时显示错误消息的最佳方法是什么?
【问题讨论】:
标签: c# asp.net-core asp.net-core-webapi asp.net-core-2.2