Ich habe versucht, benutzerdefinierte Modellbinder in meinem ASP.NET MVC 4-Projekt zu erstellen. Aber ich bleibe mit IModelBinder iterfaces stecken. Es gibt drei IModelBinder-Schnittstellen, die VS finden kann. In folgenden Namespaces.
%Vor%Alle verwandten Klassen wie ModelBindingContext , ModelMetadata strong> und andere werden ebenfalls dupliziert. Ich und mein Freund können nicht herausfinden, was der Zweck solch schrecklicher Codeverdopplung ist. Warum haben Microsoft-Entwickler keine gemeinsamen Klassen für die freigegebene Assembly extrahiert? Wie ich verstehe, wird eine Schnittstelle in MVC verwendet, eine in Web Api und was ist der Zweck der dritten Version? Sind diese Schnittstellen unabhängig oder irgendwie miteinander verbunden?
Ich bin kein MS Folk, aber ich denke, hier ist die Antwort -
Der System.Web.ModelBinding-Namespace bietet Klassen, die Sie aktivieren um Datenobjekte an ASP.NET Web Forms-Serversteuerelemente zu binden.
Der System.Web.Mvc-Namespace enthält Klassen und Schnittstellen, die Unterstützung des ASP.NET Model View Controller (MVC) -Frameworks zum Erstellen Web Applikationen. Dieser Namespace enthält Klassen, die darstellen Controller, Controller-Fabriken, Aktionsergebnisse, Ansichten, teilweise Ansicht, Modellbinder und vieles mehr.
Dieser Namespace ist für Web API 2
Kurz gesagt, alle drei Frameworks sind unabhängig voneinander. Und Sie sollten daran denken, dass sie separat einsetzbare Frameworks sind. Deshalb ist es notwendig, sie alle zu behalten. Wenn Sie keinen bestimmten benötigen, entfernen Sie ihn aus den referenzierten Assemblys. Sie sind nicht voneinander abhängig. Sie sind alle aus separaten Frameworks, die alle für den Zweck verwendet werden, die am besten passen.
Es ist die Funktion der Tools intellisense oder resharper , die alle auflisten können. Aber Sie sind derjenige, der den richtigen auswählen sollte, basierend auf Ihrem Rahmen und Ihrem Bedarf. Aber normalerweise sind sie alle in einer .net-Vollversion verfügbar und dienen wahrscheinlich der gleichen Arbeit.
Tags und Links .net c# asp.net model-binding