MVC:将类型为“double”的ViewData对象传递给数字输入字段

时间:2017-06-19 19:41:53

标签: html asp.net-mvc input

我正在尝试将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>

2 个答案:

答案 0 :(得分:0)

您遇到的问题是ViewData["FlowFact"]正在返回的问题,根据您的@String.Format("{0:N1} m³/h", @ViewData["FlowFact"]) <!--Result = 3,1 m³/h--> 3,1

这不被识别为数字,所以它不起作用。返回整数或十进制数。因此,不是3,1,而是返回3.13。 否则,请更改输入类型以接受您传递的内容。

答案 1 :(得分:0)

我感谢jamiedanq找到了解决方案。

在我的控制器中,我正在为@ViewData [&#34; FlowFact&#34;]对象写一个double值。但在我看来,它返回的值为3,0999,这对于输入类型&#39; Number&#39;而言不是正确的值。因为&#34;,&#34;。

我没有将双重值传递给对象,而是将其更改为传递字符串值并替换&#34;,&#34;使用&#34;。&#34;:

控制器:

&#13;
&#13;
@ViewData["FlowFact"] = @String.Format("{0:N1}", MyDoubleValue).Replace(",",".");
&#13;
&#13;
&#13;

查看:

&#13;
&#13;
<p>
   Debiet factor: <input name="FlowFact" type="number" value="@ViewData["FlowFact"]"  step="0.1" autocomplete="off">
</p>
&#13;
&#13;
&#13;