2

こんにちは、datetime プロパティの日付と、通貨でフォーマットされた小数プロパティの価格のみを表示しようとしています。しかし、フォーマットが機能しないため、何か間違ったことをしているに違いありません。

ここに画像の説明を入力

日付と通貨ドル額を使用した価格のみを表示したいと思います。これは私のモデルコードです:

    [Required]
    [DataType(DataType.Date)]
    public DateTime PublicationDate { get; set; }


    [Required]
    [DataType(DataType.Currency)]
    [DisplayFormat(DataFormatString="{0:c}")]
    public decimal Price { get; set; }

そして、これは私がビューに使用したコードです:

         <p>
            @Html.LabelFor(model => model.PublicationDate , "Publication Date")
            @Html.TextBoxFor(model => model.PublicationDate, new { @class = "datepicker"})
         </p>
        <p>
            @Html.LabelFor(model => model.Price)
            @Html.TextBoxFor(model => model.Price)
         </p>

私は何を間違っていますか?

4

5 に答える 5

4

日付のDateTime 形式

[Required]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime PublicationDate { get; set; }

通貨の倍精度フォーマット

[Required]
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString="{0:0.00}")]
public decimal Price { get; set; }
于 2013-03-12T07:19:45.770 に答える
3

私は MVC の人ではありませんが、DisplayFormatString が必要なだけだと思います。

[DisplayFormat(DataFormatString="{0:d}")]

d「短い日付」の標準の日付/時刻形式の文字列です。カスタムの日付/時刻形式の文字列を使用することもできます。ユーザーに表示されるテキストについては、ユーザーの文化に合わせて適切に調整できるため、通常は標準の日付/時刻形式の方が適していることに注意してください。「MM/dd/yyyy」や「dd/MM/yyyy」などの固定カスタム形式を使用すると、異なる形式を使用するユーザーを混乱させることになります。(たとえば、「06/05/2013」は英国では 5 月 6 日ですが、米国では 6 月 5 日です。)

ただし、入力のためにこれが必要な場合は、おそらく日付ピッカーを使用するのが最善でしょう。

于 2013-03-12T07:20:50.197 に答える
1

問題は、DataFormatの注釈をTextBoxForとLabelForに適用できないことでした。これらの注釈はDisplayForとEditorForにのみ適用できます。

于 2013-03-18T14:44:31.453 に答える
1

"{0:d}"短い日付のみのパターンにはフォーマット文字列を使用できます。

于 2013-03-12T07:19:52.463 に答える
0

次のように単純に割り当てることができます>

DateTime.Now.Date.ToShortDateString()

またはdatetimepickerの場合>

dateTimePicker1.Value.Date.ToShortDateString();

日時ピッカーの場合は、フォーマットと呼ばれるオプションもあり、それを短く保ちます。

于 2013-03-12T07:20:48.657 に答える