【问题标题】:HTML-Razor float as input valueHTML-Razor 浮动作为输入值
【发布时间】: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


【解决方案1】:

我建议您在方法 calibratePH 上制作参数字符串,当您收到它时将其转换为浮点数。

【讨论】:

  • 是的,我已经在考虑这个问题了。我知道这可以工作,但这只是一个不太整洁的解决方案。我以为会有更好的。谢谢人
  • 另一种选择是在 url 末尾添加斜杠。我还没有测试过。在这里查看stackoverflow.com/questions/21387974/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 2012-08-31
  • 2020-10-03
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
相关资源
最近更新 更多