0

私は、MVC 4 と Razor の学習に関する次のLynda.com チュートリアルに取り組んできました。表示される時間を、時間、分、次に AM/PM のみで表示しようとすることに固執しています。現時点では、画面にはまだ秒が含まれています (以下を参照)。
ここに画像の説明を入力

この投稿の DateTimeのように日付をフォーマットしようとしましたが、うまくいきませんでした。これで、この投稿のように、「AuctionsController.vb」というタイトルのコントローラー セクションの関数内に次のコードがあります。

Function Auction() As ActionResult
        Dim mainauction = New MVCAuction3.Models.Auctions

        Dim ts As New TimeSpan(10, 0, 0)

        mainauction.Title = "Example Auction"
        mainauction.Description = "This is an example Auction"
        mainauction.StartTime = DateTime.Now + ts
        mainauction.EndTime = DateTime.Now.AddDays(7) + ts
        mainauction.StartPrice = 1.0
        mainauction.CurrentPrice = Nothing

        ViewData("Auction") = mainauction

        Return View()
    End Function

これは、Razor がビュー "Auction.vbhtml" からコンテンツを表示する方法です。

    <p>Start Time: @auction.StartTime.ToString() </p>
    <p>End Time: @auction.EndTime.ToString()</p>
    <p>Starting Price: @FormatCurrency(auction.StartPrice.ToString())</p>

編集:
これは、モーダルファイルで時間変数を宣言した方法です:

Private Property x_StartTime As DateTime
Private Property x_EndTime As DateTime

Public Property StartTime() As DateTime
            Get
                Return x_StartTime
            End Get
            Set(value As DateTime)
                x_StartTime = value
            End Set
        End Property

        Public Property EndTime() As DateTime
            Get
                Return x_EndTime
            End Get
            Set(value As DateTime)
                x_EndTime = value
            End Set
        End Property

また、次の「Auction.vhtml」ビュー内から取得しようとしましたが、残念ながら「入力文字列の形式が正しくありませんでした」というサーバー エラーが発生しました。:

<p>Start Time: @auction.StartTime.ToString("g") </p>
    <p>End Time: @auction.EndTime.ToString("g")</p>
    <p>Starting Price: @FormatCurrency(auction.StartPrice.ToString())</p>

時間をフォーマットしていないRazorまたはMVCコードで何が間違っていますか? どんな助けでも大歓迎です!

4

2 に答える 2

6

MSDNのCustom Date and Time Format Stringsをご覧ください。基本的に、フォーマット文字列をオブジェクトのToStringメソッドに渡すことができDateTimeます。

秒を省略したサンプルを次に示します。

auction.StartTime.ToString("M/d/yyyy hh:mm tt")
于 2013-09-16T20:52:29.430 に答える