我正在尝试将double类型的ViewData对象传递给类型为number的输入字段,其中包含1位小数。但输入字段保持为空。我做错了什么?
<p>
Debiet factor: <input name="FlowFact" type="number" value="@ViewData["FlowFact"]" step="0.1" autocomplete="off">
@String.Format("{0:N1} m³/h", @ViewData["FlowFact"]) <!--Result = 3,1 m³/h-->
</p>
答案 0 :(得分:0)
您遇到的问题是ViewData["FlowFact"]
正在返回的问题,根据您的@String.Format("{0:N1} m³/h", @ViewData["FlowFact"]) <!--Result = 3,1 m³/h-->
3,1
。
这不被识别为数字,所以它不起作用。返回整数或十进制数。因此,不是3,1
,而是返回3.1
或3
。
否则,请更改输入类型以接受您传递的内容。
答案 1 :(得分:0)
我感谢jamiedanq找到了解决方案。
在我的控制器中,我正在为@ViewData [&#34; FlowFact&#34;]对象写一个double值。但在我看来,它返回的值为3,0999,这对于输入类型&#39; Number&#39;而言不是正确的值。因为&#34;,&#34;。
我没有将双重值传递给对象,而是将其更改为传递字符串值并替换&#34;,&#34;使用&#34;。&#34;:
控制器:
@ViewData["FlowFact"] = @String.Format("{0:N1}", MyDoubleValue).Replace(",",".");
&#13;
查看:
<p>
Debiet factor: <input name="FlowFact" type="number" value="@ViewData["FlowFact"]" step="0.1" autocomplete="off">
</p>
&#13;