我已经创建了一个MVC项目,并在html代码中有一个表单的输入字段类型="number",每当我插入一个十进制值(即:10.4),我发布表单到c#控制器API(通过一个命令IRequest参数),十进制值自动转换为一个整数,基本上删除点(即:10.4变成104)。为什么呢?我有什么办法能修好它吗?
编辑:我使用的代码示例:
在View文件中,表单是:
<form>
...
<input type="number" asp-for="ModelFieldName" />
</form>
而在c#控制器中,我使用这个方法:
[HttpPost]
public async Task<ActionResult> FormApi([FromQuery] GetFormEntity Query query, UpdateFormEntityCommand command) {
....
await Mediator.Send(command);
var model = await Mediator.Send(query);
return await View("...", model);
}
基本上当表单提交Post方法调用和数据传递给UpdateFormEntityCommand IRequest型和处理更新底层实体,问题是,每一个十进制值由客户机(web页面)发送正确(我查了Chrome开发工具和发送是正确的价值点)获得点完全删除(我检查使用调试器和命令中的值参数已经错了)。
我在这个项目中也使用了jquery,所以可能是它造成了这个问题,但我不认为是这样的。
需要设置步骤属性为any
。默认为1
,它只允许整数。
<Input type="number" step="any">