[英]MVC: Pass ViewData object with type 'double' to number input field
我試圖將類型為double的ViewData對象傳遞給數字類型為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>
您面臨的問題是ViewData["FlowFact"]
返回的內容,根據您的@String.Format("{0:N1} m³/h", @ViewData["FlowFact"]) <!--Result = 3,1 m³/h-->
為3,1
。
該號碼無法識別,因此無法使用。 返回整數或十進制數。 因此,而不是一個的3,1
,返回3.1
或只是一個3
。 否則,請更改輸入類型以接受您要傳遞的內容。
感謝jamiedanq,我找到了解決方案。
在我的控制器中,我正在向@ViewData [“ FlowFact”]對象寫入一個雙精度值。 但是在我看來,它返回的值為3,0999,因為“,”,對於輸入類型“ Number”而言這不是正確的值。
我沒有將雙精度值傳遞給對象,而是將其更改為傳遞字符串值,並將“,”替換為“。”:
控制器:
@ViewData["FlowFact"] = @String.Format("{0:N1}", MyDoubleValue).Replace(",",".");
視圖:
<p> Debiet factor: <input name="FlowFact" type="number" value="@ViewData["FlowFact"]" step="0.1" autocomplete="off"> </p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.