2011-03-28 73 views
7

私はMVC2のアプリケーションに取り組んでいます。asp.net mvcとカンマで区切られた番号

データアノテーションを使用してデータ(クライアント側とサーバー側の両方)を検証します。モデルには小数点以下の値しか許さないいくつかのフィールドがあります。ユーザーが小数点値を入力するとすぐに、カンマ区切りの読みやすい形式に変換してほしい。たとえば、1200はそのままで、1200は1,200にフォーマットする必要があります。ここで

は私のモデルである:

public virtual GrossFee? Fee { get; set; } 

そして、ここではそれがビューにある方法です:

%: Html.TextBoxFor(model => model.GrossFee)%> 

このに関するすべてのアイデアが高く評価されます。

ありがとうございます!

+1

を助けることを願っています純粋なクライアント側のチェックアウトのためにこの答え:http://stackoverflow.com/questions/1990512/add-comma-to-numbers-every-three-digits-using-jquery –

答えて

9

代わりのtoString内フォーマットを使用することができるはずです。

モデル:

(私はGrossFee?が何であるか分かりませんが、その小数点は仮定します)

[DisplayFormat(DataFormatString = "{0:0,0}")] 
public virtual Decimal? Fee { get; set; } 

ビュー:

Html.EditorFor(model => model.GrossFee) 

また、あなたの特定の用途に適合するようにHtmlEncodeとApplyFormatInEditModeを微調整する必要があるかもしれません。

テキストボックスの内容をカンマ区切りの数字に変換するものは、入力後すぐに(つまり、投稿の前に)javascriptベースにする必要があります。

+0

お寄せいただきありがとうございます。あなたが言及したように私は試してみました。そしてそれは、あなたが望む方法で総手数料の価値を表示します。 [DisplayFormat(DataFormatString = "{0:0,0}"、ApplyFormatInEditMode = true、HtmlEncode = true)]public decimal GrossFee {get;セット; }しかし、フォームがそれ自体に戻ってしまったとき、ModelState.IsValidはfalseで、総額の値が正しいフォーマットではないと不平を言う。 BTW私はクライアント側のバリデーションを真に設定して、私は各フィールドのValidateMessageForコントロールを持っています。ありがとう、トン。 – user629161

+0

これはおそらく、値にカンマがあり、バリデータがストレートな番号を期待しているからです。コンマが重要な場合は、カスタムのバリデータを検討するか、フォームの投稿に送る前にそれらを取り除く必要があります。 –

+2

ここでは、結合小数点をカンマでモデル化する「公式の」ソリューションを示します。 http://haacked.com/archive/2011/03/19/fixing-binding-to-decimals.aspx – Ryan

0

あなたはHtml.TextBoxForあなたは、このようにデータ注釈を尊重Html.EditorForを使用してビューを持つことができるの

var foo = 1200.2; 
var bob = foo.ToString("#,###.00##"); 
+0

私はそれがクライアント側で私はテキストに1200を入力しますテキストボックスがフォーカスを失うとすぐに、文字列を "#、###。##"にフォーマットする必要があります。 – user629161

3
[DisplayFormat(DataFormatString = "{0:n}")] 
public virtual GrossFee? Fee { get; set; } 

これはあなたの代わりに、上記の行の

4
drPastDateDetail[strMS] = decValue.ToString(); 

を助けることができるあなたはカンマで数値を表示したい場合は、次のコードは、you-が

String Test = String.Format("{0:#,#.##}",decValue); 
drPastDateDetail[strMS]=Test; 
関連する問題