C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■90035 / )  Re[1]: TextBoxForでHttppost時の通貨書式→数値変換
□投稿者/ WebSurfer (1738回)-(2019/01/31(Thu) 18:05:12)
No90016 (ジョディー さん) に返信

Controller のコードが不明、Model と View のコードの整合がとれてないなど不明な点が
ありますが、分かる範囲で回答しておきます。

> Model定義通りに"\"や","を除いたDecimalで返したいのですが、
> それらの文字を除くコードを追加しないといけないのでしょうか?

それは自分が知る限り無理なので(少なくとも、現実的ではないので)、

(1) DisplayFor 等を使った表示の場合のみ書式設定を行い、

(2) 編集操作に入ってテキストボックスに値を表示する場合は書式設定しない(または、"{0:F0}"
  などの書式設定に留め、数字として不正な文字は表示されないようにする)。

・・・としてはいかがですか? ASP.NET Web Forms アプリで使う GridView などではそれがデフ
ォルトの動きです。

どうしてもテキストボックスに表示する文字列も \12,345,678 のようにしたいということであれば、
decimal 型ではなく string 型として扱い、検証はデータアノテーション属性を付与して正規表現
で行なうということも考えられますが、DB のフィールドの型が money 型でしょうから、サーバー
側での取り扱いを考えると現実的ではなさそうです。

ユーザーとしても、編集する際にいちいち \ とか , を入力するのは煩わしいはずで、喜んではくれ
ないのでは?
返信 編集キー/


管理者用

- Child Tree -