Wie kann / soll ich ein "benutzerdefiniertes Steuerelement" in ASP.NET MVC 3 erstellen? Ich habe rot über partielle Ansichten, ViewUsersControl
, Html.RenderAction
, aber ich weiß immer noch nicht, welcher Weg ist die richtige MVC Weg für Rasierer Ansichten.
Wenn ich eine Ajax-Komponente zum Anzeigen rendern muss, kann ich mir vorstellen, es mit Teilansicht zu machen, aber was ist, wenn ich einen Abschnitt mit benutzerdefinierter Logik rendern möchte?
1) PartialViews
2) Benutzerdefinierte HTML-Helfer
3) Kindaktionen
Aktualisiere ASP.NET Core:
2) Tag-Helfer werden gegenüber Custom bevorzugt HTML-Helfer
3) View Components werden anstelle von Child Actions
Sie können
verwenden %Vor% Erstellen Sie beispielsweise in Ihrem Ordner Shared
ein neues View
und nennen Sie es "_MyCustomControl"
Dann im Code schreiben:
%Vor% Dann fügen Sie in Ihren Ansichten, in denen Sie "control"
verwenden möchten, Folgendes hinzu:
Wenn Sie Probleme mit RenderPartial
haben, überprüfen Sie dies
Zusätzlich zu all den anderen Antworten für diesen Beitrag kann ich Ihnen die Verwendung von EditorFor- und DisplayFor-Vorlagen anbieten. Diese sind nützlich, wenn Sie einen benutzerdefinierten Typ einfach rendern oder bearbeiten möchten. Es wird gut mit der Validierung umgehen (was bei Verwendung von Partials komisch werden kann) und Sie können sie rekursiv verschachteln (wieder ein anderes Feature, das offensichtlich nicht nützlich ist, bis Sie es brauchen).
Sie können auch Html.RenderAction()
oder Html.Action()
verwenden, um eine andere Controller-Aktion in einer Ansicht aufzurufen und die Ergebnisse in einer Zeile auf der Seite anzuzeigen. Dies ist wahrscheinlich das, was Sie am ehesten brauchen, da es Ihnen ermöglicht, einen partiellen Code in den Controller zu integrieren und auch die Übergabe von Parametern zu ermöglichen.
Links zu:
Wie Sie erwähnt haben, können Sie Teilansichten verwenden. Ja, Sie können Teilansichten verwenden, was der effektivste und effizienteste Weg ist.
Beim Ajax-Rendern können Sie immer
verwenden %Vor%Wenige der Links, die Sie sehen möchten
Tags und Links asp.net-mvc asp.net-mvc-3 c# razor controls