【发布时间】:2022-01-01 02:34:36
【问题描述】:
我有这段 HTML 应该调用 /nodes/calibratePH?value=afloatnumber:
<div style="float:left; width:50%; margin-bottom:30px;">
<h3>PH calibration</h3>
<form id="CalibrationBar" action="/Nodes/CalibratePH" method="post">
<select id=ids type="text" name="name">
<option value="0" disabled selected>name</option>
@{
foreach (var configuration in Program.CAN_Listener.KnownConfigID)
{
if (configuration.type == Web_App.Models.Sensor_Types.PH)
{
<option value="@configuration.name">@configuration.name</option>
}
}
}
</select>
<input type="number" step="0.01" max="10.0" min="-10.0" placeholder="calibration value" name="value">
<input type="submit" value="calibrate PH">
</form>
问题是,当我输入例如:3.09 或 3,09(没关系)。控制器(MVC,ASP.NET)中的方法 CalibratePH 获取值:309。1.1 给出 11,依此类推。有谁知道如何解决这个问题?我正在考虑将输入作为文本输入并在方法中接收时评估值,但这不是应该的......对吗?
编辑: This guy seems 遇到同样的问题
【问题讨论】:
-
这意味着在提交表单时它没有选择最小和最大范围。在提交之前检查它是否在某处被重置。您也可以在 api 中将其除以 100,但我建议您查看它在哪里重置为默认值。
-
不。不幸的是,它看起来不像解决方案。为了确定,我删除了最小值和最大值。没有不同。据我所知,该值在提交之前或提交时没有被重置。
标签: c# html razor web-applications