Ich habe gerade angefangen, die VS 2012 RC zu verwenden, und ich erstelle eine ASP.NET MVC 4-Webanwendung, in der ich sowohl eine HTML-basierte Benutzeroberfläche als auch eine WebApi-basierte Programmierschnittstelle bereitstellen möchte.Kann ich sowohl einen Controller als auch einen ApiController für die gleiche Sache haben?
Für meine HTML-Website habe ich einen Controller und Ansicht für jedes meiner Modelle (MVC!), Und das Routing funktioniert "per Konvention", so dass zum Beispiel die URL /client
an meine ClientController
hakt. Meine ClientController
stammt von Controller
.
Für meine API werde ich neue Controller erstellen, die von ApiController
ableiten. Ich möchte natürlich, dass meine API-URLs meinen HTML-URLs ähneln. Daher möchte ich, dass die Client-Informationen unter /api/client
verfügbar sind. Mit dem herkömmlichen Routing würde dies jedoch bedeuten, dass ich einen ApiController mit dem Namen ClientController
benötige. Und ich habe bereits eine ClientController
Klasse.
Wie gehe ich damit um? Benötige ich ein individuelles Routing? Platziere ich die API-Klassen in verschiedenen Namespaces, damit ich ihnen denselben Namen geben kann?
Update: diese Frage, dass ein anderer Namespace alle für meine API-Controller scheint darauf hinzudeuten, die ich brauche: Mix web api controllers and site controllers
Haben Sie sich [MVC Bereiche] (http://msdn.microsoft.com/en-us/library/ee671793.aspx) angesehen? – gordonmleigh
@gordonml: Danke - ich tat es einfach, und es scheint sotra, irgendwie nützlich. Aber ich kann mir nicht helfen zu fühlen, dass es etwas übertrieben ist für das, was ich erreichen muss. –
Funktioniert IsAjaxRequest für Ihre Bedürfnisse? http://stackoverflow.com/questions/1681563/detecting-isajaxrequest-with-asp-net-mvc-and-jquery-form-plugin-file-upload – kenny