Html MVC:传递类型为';双倍';对输入字段进行编号
我试图将一个类型为double的ViewData对象传递给一个类型为number、小数点为1的输入字段。但输入字段保持为空。我做错了什么Html MVC:传递类型为';双倍';对输入字段进行编号,html,asp.net-mvc,input,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["Flow
<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>
借方系数:
@String.Format(“{0:N1}m³/h”,@ViewData[“FlowFact”])
您面临的问题是ViewData[“FlowFact”]
返回的内容,根据您的@String.Format(“{0:N1}m³/h”,@ViewData[“FlowFact”])
它是3,1
这不是一个数字,所以它不起作用。返回整数或十进制数。因此,不要返回3,1
,而是返回3.1
或仅返回3
。
否则,请更改输入类型以接受您正在传递的内容。多亏了jamiedanq,我找到了解决方案 在我的控制器中,我正在向@ViewData[“FlowFact”]对象写入一个双值。但在我看来,它返回了一个值30999,这对于输入类型“Number”来说不是一个正确的值,因为“,” 我没有将双精度值传递给对象,而是将其更改为传递字符串值,并将“.”替换为“.”: 控制器:
@ViewData[“FlowFact”]=@String.Format(“{0:N1}”,MyDoubleValue)。替换(“,”,”)代码>如果输入字段为空,则视图数据[“FlowFact”]
中可能没有任何内容。确保你没有输入错误我已经添加了@String.Format。。。行以检查ViewData对象中是否有值。其中有一个值3,1。我在上面的代码中没有看到任何打字错误。这是因为您的input
类型是number
,您试图将3,1
的值传递给它,它不接受将其作为数字存储,所以它的工作方式是:@ViewData[“FlowFact”]=Convert.ToDecimal(MyDoubleValue)这可能给了我3.1而不是3,1?3,1
不是一个双精度值,它是string
。您需要将实际的double
值传递给输入类型编号,或者让您的输入类型接受您传递的字符串。因此@ViewData[“FlowFact”]is返回字符串值3,1?@JeroenSterkens请检查您传递给ViewData
的内容,并让我知道或将该代码包含在您的问题中