2012-05-01 5 views
2

私のビューに表示されている特定の方法でフォーマットしたい番号のモデルがあります。MVCビューでのフォーマット番号

ビューで
[DisplayFormat(DataFormatString = "{### ##}")] 
[Display(Name = "Postnr")] 
public string CustomerZip; 

:DBで

@Html.DisplayFor(modelItem => item.CustomerZip) 

値は#####として格納されているこのアプローチをしようとしたときに私はエラーを取得する:「入力文字列が正しい形式ではありませんでした" DataFormatStringが私のために文字列を再フォーマットすると思った(あるいはむしろ)。

これを行うにはどのような方法をお勧めしますか?

答えて

3

いくつかのことを例を参照してください:使用する

  1. DataFormatStringニーズ{0:...}あなたがstring.Formatで使用するのと同じように、インデクサースタイルの書式文字列。だから、[DisplayFormat(DataFormatString="{0:### ##}"]のようなものをする必要があります。中括弧がリテラルであると想定されている場合は、[DisplayFormat(DataFormatString="{{{0:### ##}}}")]を使用します。しかし...
  2. 文字列にはこのような書式文字#はありません。それが数値型のために使うものです。値を整数として格納している場合は、運が良いです。 CustomerZipのタイプをintに変更するだけです。
  3. 値を整数として格納するのではなく、文字列として格納する場合(通常は郵便番号で行うことはできません)、問題が増えます。私が言ったように、あなたは文字列のカスタムフォーマットオプションを持っていません。 CustomerZipは、定義するIFormattableのカスタムタイプとして表現する必要があります。
関連する問題