ASP.NET MVC; Verwenden von EditorTemplates zum Bearbeiten einer Sammlung, beste Methode für die dynamische Felderstellung

8

Ich bin neu bei ASP.NET MVC, also entschuldige mich, wenn das einfacher ist als es aussieht. Ich habe gegoogelt, ich habe eine Klasse wie folgt:

%Vor%

In Create.cshtml habe ich Folgendes:

%Vor%

SearchTerm EditorTemplate ist ein einfaches Formular wie folgt:

%Vor%

Es scheint zu funktionieren, ich sehe ein einzelnes Textfeld beim Erstellen (wenn das Standardmodell leer ist). Was ich jedoch tun möchte, ist das Hinzufügen / Entfernen der SearchTerms mit einer Hinzufügen-Schaltfläche , so dass der Benutzer eine beliebige Anzahl von Begriffen zur Sammlung hinzufügen kann bei create . Ist das irgendwie eingebaut? Gibt es ein Javascript-Framework, das gut mit diesem zusammenpasst, das die entsprechenden HTML-Namen generiert, so dass ich das nicht manuell tun muss? Komme ich mir sogar den richtigen Weg, da ich neu bei MVC bin?

Danke!

    
Richthofen 02.05.2013, 00:41
quelle

3 Antworten

6

In diesem Fall habe ich PartialView bevorzugt.

Sie sollten ein ActionResult erstellen, das Ihnen PartialView für Ihr Objekt zurückgibt. Und wenn Sie auf "Hinzufügen" klicken, sollten Sie eine AJAX-Anfrage an dieses ActionResult senden.

%Vor%

Ihre Teilansicht sollte folgendermaßen aussehen:

%Vor%

Ihre Hauptseite:

%Vor%

Und Ihr JavaScript-Teil (jQuery):

%Vor%     
melvas 17.02.2014 11:45
quelle
0

Wenn Sie wirklich binden möchten, müssen Sie Ajax oder JQuery / javavscript verwenden. Bei Hinzufügen können Sie Folgendes ausführen:

%Vor%

Oder es ist einfacher, die Suchbegriffe einfach per Javascript hinzuzufügen. Solange die Namen der Elemente übereinstimmen, sendet MVC die Daten als IEnumerable an den Server. Wenn Ihr Modell also SearchTerms enthält, hängt der EditorFor den Namen jedes Elements mit einem Index an, d. H. SearchTerms [0] .Name. Auf diese Weise geschehen alle Zuordnungen im Wesentlichen hinter den Kulissen, jedoch ist es möglich, Ihre Begriffe zu klonen und

zu ändern %Vor%     
Anthony Mason 13.02.2014 15:07
quelle
0

Ich habe eine ähnliche Sache mit der Adresse in einem Benutzerformular gemacht, füge so viele Adressen hinzu, wie du auf die Schaltfläche + klickst, das ist der Code

Anzeigen

%Vor%

[...]

%Vor%

Modell

%Vor%

und der Controller

%Vor%

so in meinem Modell.Indirizzi habe ich alle Adresse, die ich über die Schaltfläche hinzugefügt habe

    
theLaw 13.02.2014 16:03
quelle