1

コントローラからビューに取得するすべてのDateTimeインスタンスを変更する方法はありますか?

UTCタイムゾーンでサーバーに日時を保存しました。しかし、ブラウザでは、クライアントのタイムゾーンで日付を表示する必要があります。したがって、クライアントのタイムゾーンで日時を手動で変換する必要があるたびに、次のようになります。

model.DateCreated = ConvertToClientTimeZone(model.DateCreated)

これは快適ではありません。だから私はこの変換を自動的に行うための可能な方法について尋ねていますか?

4

2 に答える 2

2

ビューモデルを使用する場合は、ドメインモデルをビューモデルに変換するマッピング機能内にタイムゾーン変換ロジックを配置することもできます。

つまり、AutoMapperを使用している場合は、日付をマッピングするときにUTC(DB内)からクライアントのタイムゾーンに自動的に変換されるようにAutoMapperを構成できると思います。そうすることで、変換ヘルパー関数の呼び出しを忘れて、ユーザーに不正なDateTimeを表示することを忘れる可能性を減らすことができます。

クライアントからDBへ(ビューモデルからドメインモデルへ)来るDateTimesからの変換も実行する必要があることを忘れないでください。

于 2013-03-25T12:38:18.150 に答える
0

カスタムHTMLヘルパーを作成できます。

public static IHtmlString FormatDate(this HtmlHelper html, DateTime date)
{
    string result = ... format the date however you like
    return new HtmlString(result);
}

そして、ビューで:

@Html.FormatDate(model.DateCreated)
于 2013-03-25T07:29:20.267 に答える