Sie tun können, es wie das, was die anderen vorschlagen, aber eine andere Alternative ist es in Ihrem Aktionsmethode zu setzen, nach der Zuordnung von View-Modell zu Domäne und kurz bevor es das Hinzufügen auf die Datenbank (wenn dies ist, was Sie tun müssen):
[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
}
Ihr domail Modell für Benutzer:
public class User
{
// Other properties here
public DateTime DateJoined { get; set; }
}
ich es in der Aktion-Methode, weil das Datum festgelegt haben persönlich würde und Die Zeit wäre näher, wenn der Benutzer tatsächlich zur Datenbank hinzugefügt wird (vorausgesetzt, Sie wollten dies tun). Lassen Sie uns sagen, Sie erstellen Ihr Benutzerobjekt um 12:00 Uhr, dann ist dies Ihre Zeit, wenn der Benutzer der Datenbank hinzugefügt wird, aber was passiert, wenn Sie nur um 12:30 Uhr auf die Senden-Schaltfläche klicken? Ich würde lieber 12:30 als 12:00 bevorzugen.
Ich stimme zu, das ist die bessere Lösung, ein Benutzer kann eine Ansicht öffnen und die DateTime würde gesetzt werden, aber wenn sie diese Ansicht für eine lange Zeit abhängig von Ihrer Cache-Strategie verlassen, kann es inkonsistent sein. Ich persönlich verwende ein DTO der Basisklasse, zu dem alle DTOs gehören, die die Eigenschaften CreatedBy, CreatedDate, LastUpdatedBy, LastUpdatedDate enthalten. Diese werden gesetzt, bevor sie in der Datenbank gespeichert werden –