Erste Beitrag Zeit,Meine Aktion Controller Code sieht dilettantisch
Ich habe um mit MVC abit spielen ... Ich habe eine Ansicht, die mehrere Eingabefelder hat, können einige dieser Felder auf Post leer sein.
Die Aktionsmethode in der Steuerung für den Posten sieht so etwas wie dieses Ich
public ActionResult Filter(int? id, string firstName, string lastName, bool? isMember)
haben die DynamicQuery Erweiterung wurde verwendet, die um auf meine Datenbank auszuführen dynamische Linq querys um wurde Tritte und ich Dieses Objekt wird in ein Suchobjekt eingekapselt, das zur Ausführung an die Datenzugriffsebene übergeben wird.
Ich habe jedoch auch ein benutzerdefiniertes ViewData-Objekt, das an die Ansicht zurückgegeben wird, um die Eingabewerte und die Ergebnisse der Abfrage anzuzeigen.
Es sieht alles ein bisschen eklig im Code aus, da ich sowohl die Suchobjekteigenschaften als auch die ViewDatas einstellen muss.
public ActionResult Filter(int? id, string firstName, string lastName, bool? isMember) {
var search = new Search {
Id = id,
FirstName = firstName,
LastName = lastName,
Member = isMember
};
var memberViewData = new MemberViewData {
Id = id,
FirstName = firstName,
LastName = lastName,
Member = isMember
};
memberViewData.Results = _dataRepository.GetMember(search);
return View("Search", memberViewData);
}
denke ich das immer und sollte wirklich nur die Werte an die Datenzugriffsschicht passieren und das Viewdata in der Steuerung füllen, oder gibt es eine viel elegantere Muster oder betreibe ich verwenden könnte?
Tut mir leid, wenn das scheint Dump, nicht allot von Menschen, um Ideen aus und Zeit, um in den Rahmen zu graben.
interesting, aber wie ich es verstehe kann ich nur Eingabefelder von der Ansicht an die ActionMethod übergeben, wo ist die Suche instanziiert? –
Gerade geschafft, etwas Zeit zu finden, damit zu spielen, und ich kann sehen, dass Mvc versuchen wird, die Formularfelder standardmäßig mit den Eigenschaften auf dem Objekt zu binden, ohne irgendeine zusätzliche Kodierung !! –
Ja, das ist richtig. Es verwendet einen Standardmodellbinder, den Sie überschreiben können, wenn Sie eine feinere Kontrolle über die Parameterbindung benötigen. –