0

私は次のようなクラスを持っています:

public class Item
{
    public int ItemID { get; set; }

    [Display(Name = "Value")]
    [Column(TypeName = "money")]
    public decimal Value{ get; set; }
}

フォームに 12.50 と入力し、投稿アクションでは、オブジェクトには Item.Value = 1250 がありますが、12.50 が必要です。これを修正するにはどうすればよいですか?

アクション方法:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Item item)
{
    ...code...
}

意見:

<div class="editor-label">
    @Html.LabelFor(model => model.Value)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Value)
    @Html.ValidationMessageFor(model => model.Value)
</div>

タイプ 12. の場合、検証クライアント側は「フィールド Valor は数値でなければなりません」と言います。ただし、ポスト アクション メソッドを実行させてください。12 で、同じことを言いますが、許可しません。

4

2 に答える 2

0

.次のように、サーバーで小数点記号として使用するカルチャを指定してみてください。

<globalization uiCulture="en-US" culture="en-US" />

別の方法として、autoカルチャを使用する (つまり、クライアント ブラウザーの設定とAccept-Language要求ヘッダーから推測する) 場合は、10 進数型のカスタム モデル バインダーを記述し、[DisplayFormat]属性を使用して目的の形式を明示的に設定できます。次の投稿でこれを説明しました: https://stackoverflow.com/a/11272982/29407 (これは DateTime 型用ですが、decimal型の例を簡単に適応させることもできます)

于 2013-09-27T06:16:02.710 に答える