Ich bin verwirrt zwischen Domänen-/Anwendungslogik und Benutzerschnittstellenlogik. Um zu illustrieren, was ich versuche festzunageln, werde ich ein imaginäres Programm zur Veranschaulichung unten beschreiben:Verwirrung zwischen Ansichtslogik und Domänenlogik in einer ASP.NET MVC-Webanwendung
(1) Stellen Sie sich eine kleine Anwendung mit einem Satz von 3 kaskadierenden Dropdowns vor. Wenn Sie ein Dropdown-Menü auswählen, wird ein jQuery Ajax GET ausgelöst, das auf einen MVC-Controller trifft und den ausgewählten Wert des zuvor ausgewählten Dropdown-Menüs liefert. Der Controller gibt die zulässigen Optionen für das nächste Dropdownfeld zurück. Das javascript (in der Ansicht) ordnet diese Ergebnisse in einem Drop-down-Menü an. und so weiter. Jedes Mal, wenn Sie ein Dropdown auswählen, wird das nächste aufgefüllt.
(2) Werfen Sie jetzt einen Schraubenschlüssel .. Es gibt einige Ausnahmen. Nehmen wir an, wenn der Benutzer "FOO" oder "BAR" im ersten Dropdown-Menü auswählt, ändert sich das Verhalten, so dass das zweite Dropdown deaktiviert ist, und das Dropdrop-Fenster zeigt stattdessen eine Texbox.
Meine Fragen sind, im Kontext von MVC, der geeignete Ort für diese "Entscheidungslogik"? Wie der Code, der für diese Entscheidungen verantwortlich ist, wie ich in (2) erklärt habe. Der bequemste Ort, an dem ich das gemacht habe, war direkt im Javascript der Aussicht. Ich schrieb einfach Javascript, um zu testen, ob die erste Box "FOO" oder "BAR" ist, dann deaktiviere das zweite Drop-Down und tausche das dritte Drop-Down für ein Textfeld aus. Aber das fühlt sich für mich nicht richtig an. Weil es so aussieht, als sollte es Geschäftslogik sein, deshalb sollte der Code irgendwo in eine Domain-Ebene gehören. Aber das fühlt sich auch nicht richtig an.
Und so fühle ich mich wie ich im Kreis gehe. Kann jemand dieses kleine Design beleuchten?
Gott, wie diese Frage mich in meiner Ausfallzeit plagt. – Merritt