Ich habe ein Formular mit zwei Textfeldern. Ich erhalte Daten aus der Datenbank , um die Felder zu füllen. Wenn mein Benutzer auf Senden Schaltfläche klickt und der Inhalt der 2 Textfelder sich nicht ändert, möchte ich den Code nicht durchlaufen.Bestimmen Sie, ob es Änderungen in einem Formular gibt, wenn Sie auf eine Senden-Schaltfläche klicken
Wie kann ich feststellen, wann sich der Inhalt der Boxen ändert und wann sich nichts ändert? Muss ich irgendeine Art von Vergleich zu dem machen, was ich im Gedächtnis habe?
public ActionResult Edit(profile objprofiler)
{
if (ModelState.IsValid)
{
//Go fetch the existing profile from the database
var currentProfile = db.Profiles.FirstOrDefault(p => p.ProfileId == objprofiler.ProfileId);
//Update the database record with the values from your model
currentProfile.City = objprofiler.City;
currentProfile.State = objprofiler.State;
//Commit to the database!
db.SaveChanges();
ViewBag.success = "Your changes have been saved";
return View(profiler);
}
}
so was passiert, wenn ich ein Formular mit 40 Feldern habe. Werde ich 40 Felder vergleichen? Dafür muss es eine bessere Lösung geben. Denkst du nicht auch? – user2320476
@ user2320476: Was genau möchten Sie hier erreichen? Wenn Sie 40 Vergleiche machen wollen, müssen Sie 40 Vergleiche anstellen. Sie können den Vergleich im Objekt selbst kapseln, so dass es im Controller nur eine einzige Codezeile gibt, um diese Funktionalität aufzurufen. (Überschreibe '.Equals()', vielleicht?) Ich schätze, die Frage wird wirklich ... Ist dieser zusätzliche Code es wert, eine Reise in die Datenbank zu speichern? Was wird wirklich erreicht, indem diese Reise in die Datenbank gespeichert wird? Wenn die Leistung * schlecht * ist, kann das Problem woanders liegen. – David
Was ich sage ist, dass es eine Möglichkeit geben muss, Änderungen in einem Formular mit begrenztem Code zu bestimmen und 40 Felder nicht mit einer if-Anweisung zu vergleichen. Vielen Dank. – user2320476