ASP.NET MVC-Feld-ID-Generierung, partielle Ansichten, die von AJAX geladen werden, erstellen nicht eindeutige Namen

8

Wir verwenden die HTML-Helfer von ASP.NET MVC zum Generieren von Formularen, daher werden auch Namen für Formularfelder von diesen HTML-Helfern generiert.

Immer wenn ich eine Teilansicht über AJAX in meine aktuelle Seite lade (zB in einen modalen Dialog), stoße ich auf Probleme, wenn das Modell für diese Teilansicht ein Feld enthält, das wie ein anderes Feld in der Originalansicht benannt ist Modell (weil ASP.NET MVC dieselben IDs generiert).

Gibt es eine Möglichkeit, einer Teilansicht mitzuteilen, dass ihre Felder mit einem bestimmten Präfix versehen werden sollen (so dass die spätere Modellbindung diese Präfixnamen versteht)?

Momentan haben wir Felder in Teilansichtsmodellen in "PartialDateOfBirth" umbenannt, um nicht mit dem Modell der ursprünglichen Seite "DateOfBirth" zu interferieren, aber das saugt und funktioniert nicht, wenn Sie die gleiche Teilansicht mehrmals über AJAX in die Seite laden. ..

Jede Best-Practice-Lösung für das Problem?

    
D.R. 18.09.2013, 07:47
quelle

2 Antworten

2
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer18881123 ___

Erstellen Sie Ihre eigenen Helper-Methoden, um ein Präfix mit der ID zu übergeben, es ist keine große Aufgabe.

    
___ tag123aspnetmvc ___ Das ASP.NET MVC Framework ist ein Open-Source-Webanwendungsframework und Tooling, das eine auf Webanwendungen basierende Version des Model-View-Controller (MVC) -Musters implementiert und auf einer ASP.NET-Technologiegrundlage aufbaut. ___ qstnhdr ___ ASP.NET MVC-Feld-ID-Generierung, partielle Ansichten, die von AJAX geladen werden, erstellen nicht eindeutige Namen ___ tag123aspnetmvc4 ___ ASP.NET MVC 4 ist die vierte Hauptversion der ASP.NET Model-View-Controller-Plattform für Webanwendungen. ___ antwort19885180 ___

Folgendes würde ich tun:

Speichern Sie dies als HtmlPrefixScopeExtensions.cs in Ihrem Projekt

%Vor%

Dann ändern Sie Ihre Ansicht von zum Beispiel:

%Vor%

An:

%Vor%

Vergessen Sie nicht, eine using-Anweisung in die Ansicht einzufügen, die dem Speicherort von HtmlPrefixScopeExtensions.cs entspricht, zum Beispiel:

%Vor%

oder fügen Sie Views / Web.config den richtigen Namespace hinzu (dies ist bei weitem die empfohlene Option, Sie tun dies nur einmal!):

%Vor%

Jetzt: Der Name der Felder wird zum Beispiel "Country.Name"

sein

Sie müssen dann in Ihrem Post einen passenden Namen haben, z. B .:

%Vor%

Credits: Ich habe Steve Sandersons wundervolle BeginCollectionItem-Klasse

gekürzt     
___ qstntxt ___

Wir verwenden die HTML-Helfer von ASP.NET MVC zum Generieren von Formularen, daher werden auch Namen für Formularfelder von diesen HTML-Helfern generiert.

Immer wenn ich eine Teilansicht über AJAX in meine aktuelle Seite lade (zB in einen modalen Dialog), stoße ich auf Probleme, wenn das Modell für diese Teilansicht ein Feld enthält, das wie ein anderes Feld in der Originalansicht benannt ist Modell (weil ASP.NET MVC dieselben IDs generiert).

Gibt es eine Möglichkeit, einer Teilansicht mitzuteilen, dass ihre Felder mit einem bestimmten Präfix versehen werden sollen (so dass die spätere Modellbindung diese Präfixnamen versteht)?

Momentan haben wir Felder in Teilansichtsmodellen in "PartialDateOfBirth" umbenannt, um nicht mit dem Modell der ursprünglichen Seite "DateOfBirth" zu interferieren, aber das saugt und funktioniert nicht, wenn Sie die gleiche Teilansicht mehrmals über AJAX in die Seite laden. ..

Jede Best-Practice-Lösung für das Problem?

    
___
joargp 10.11.2013 01:18
quelle
0

Erstellen Sie Ihre eigenen Helper-Methoden, um ein Präfix mit der ID zu übergeben, es ist keine große Aufgabe.

    
sino 18.09.2013 19:51
quelle

Tags und Links