.NET-Modellbinder

8

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 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?

    
Mark Lavrynenko 11.06.2014, 20:45
quelle

1 Antwort

14

Ich bin kein MS Folk, aber ich denke, hier ist die Antwort -

  1. System.Web.ModelBinding ist für ASP.Net-WebForms-Anwendungen
  2. vorgesehen

Ссылка

  

Der System.Web.ModelBinding-Namespace bietet Klassen, die Sie aktivieren   um Datenobjekte an ASP.NET Web Forms-Serversteuerelemente zu binden.

  1. System.Web.Mvc ist für ASP.Net MVC
  2. vorgesehen

Ссылка

  

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.

  1. System.Web.Http.ModelBinding ist für die ASP.Net-Web-API
  2. vorgesehen

Ссылка

  

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.

    
brainless coder 12.06.2014 12:35
quelle

Tags und Links