することにより、デフォルト値を設定する必要がありますが、別の代替は、ドメインへのビューモデルから、あなたのマッピングの後、ちょうどそれを追加する前に、あなたのアクションメソッドでそれを設定することですデータベース(これはあなたが何をする必要があるかである場合)に:
[HttpPost]
public ActionResult Create(YourViewModel viewModel)
{
// Check if view model is not null and handle it if it is null
// Do mapping from view model to domain model
User user = ... // Mapping
user.DateJoined = DateTime.Now;
// Do whatever else you need to do
}
ユーザーのためのあなたのdomailモデル:
public class User
{
// Other properties here
public DateTime DateJoined { get; set; }
}
日ので、私は個人的にアクションメソッドでそれを設定しているだろうし、ユーザーがデータベースに実際に追加された時刻に近い時刻になります(これを実行すると仮定した場合)。 12時にユーザーオブジェクトを作成するとしたら、ユーザーがデータベースに追加された時間ですが、12時30分に送信ボタンをクリックすればどうなるでしょうか?むしろ12時30分より12時30分を好むだろう。
私はこれがよりよい解決策であることに同意します。ユーザーはビューを開くことができ、DateTimeは設定されますが、キャッシング戦略によってはそのビューを長時間放置すると矛盾する可能性があります。私は個人的には、CreatedBy、CreatedDate、LastUpdatedBy、LastUpdatedDateプロパティを含むすべてのDTOに基本クラスDTOを使用します。これらはDBに永続化される直前に設定されます –