2017-06-19 18 views
0

に「ダブル」タイプとパスのViewDataオブジェクト私は小数第1位を持つタイプ番号の入力欄にdouble型のViewDataをオブジェクトを渡すためにしようとしています。しかし、入力フィールドは空のままです。私は間違って何をしていますか?MVC:番号入力欄

<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

は、おそらく 'ViewDataを[「FlowFact」]'では何もありません。タイプミスがないことを確認してください – jamiedanq

+0

@ String.Format ...行を追加して、ViewDataオブジェクトに値があるかどうかを確認しました。その中に値3,1があります。 上記のコードで誤字が表示されません。 –

+0

あなた 'input'タイプは' number'あるので、それはだとあなたはそれを3,1' 'の値を渡すためにしようとしていると、それは数値として – jamiedanq

答えて

0

私は解決策にjamiedanqに感謝を発見しました。

私のコントローラでは、私は@ViewData [「FlowFact」]オブジェクトにdouble値を書いていました。しかし私の見解では、 "、"のために入力タイプ 'Number'の正しい値ではない値3,0999を返していました。 「」の代わりに私は、文字列値を渡すと「」に置き換えることを変更したオブジェクトにdouble値を渡す

コントローラー:

@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>
入力フィールドが空の場合

0

あなたが直面している問題は、ViewData["FlowFact"]があなたの@String.Format("{0:N1} m³/h", @ViewData["FlowFact"]) <!--Result = 3,1 m³/h-->によると、それは3,1だこれは、帰国されたものです。それは動作しませんので、数値として認識されていません

。整数または10進数を返します。そのため、3,1の代わりに、3.1または3を返します。 それ以外の場合は、渡す内容を受け入れるように入力タイプを変更します。

+0

感謝していることを受け入れていないので、それは次のように動作します: @ViewData [ "FlowFact"])= Convert.ToDecimal(MyDoubleValue) 3,1の代わりにおそらく3.1を与えるのはどれですか? –

+0

'3,1'は二重値ではなく、' string'です。実際の 'double'値に入力タイプ番号を渡すか、入力タイプに渡す文字列を受け入れる必要があります – jamiedanq

+0

@ViewData [" FlowFact "]は文字列値3,1を返しますか? –