Ich habe eine Web Forms-App, die ich vor einigen Monaten erstellt habe, und ich habe einen Web-API-Controller hinzugefügt. Ich habe versucht, das "automatische" Routing zu verwenden, das ich kürzlich in einer Präsentation gesehen habe, aber alles, was ich bekam, war ein 404. Dann habe ich versucht, das Routing für den Web-API-Controller in meinem Global.asax mit MapHttpRoute hinzuzufügen, wie ich es gesehen habe mehrere Tutorials. Aber selbst nach dem Hinzufügen von Imports System.Web.Http
zur Datei erkennt das Projekt RouteTable.Routes.MapHttpRoute()
nicht. Ich habe versucht, andere Namespaces hinzuzufügen und sicherzustellen, dass ich alle notwendigen Nuget-Pakete habe, aber ich kann das Routing für die Web-API noch nicht einrichten Regler. Hat jemand eine Empfehlung, wo man anfangen soll?
Ich habe diesen Thread gefunden, der darauf hinweist, dass IntelliSense anscheinend ein Problem damit hat, aber wenn Sie etwas eingeben wie folgt, wird es gebaut und ausgeführt:
%Vor%Wenn jemand das gleiche Problem in C # hat, lesen Sie weiter.
Ich verwende auch eine Webformular-App und setze das Routing durch die Global.asax
-Datei. Für mich war Intellisense zu 100% korrekt und es würde sich nicht aufbauen. Um dies zum Laufen zu bringen, musste ich folgende using-Direktiven hinzufügen:
und
%Vor% Vorsicht nicht , um using System.Web.Http.Routing
versehentlich zu verwenden. Das wird nicht funktionieren.
Sie sollten den Verweis auf die System.Web.Http.WebHost Assembly hinzufügen und sicherstellen, dass Sie
haben %Vor% Warum? MapHttpRoute ist in zwei Assemblys in System.Web.Http
:
Mitglied von System.Web.Http.HttpRouteCollectionExtensions
und in System.Web.Http.WebHost
Erstens ist eine Erweiterung auf HttpRouteCollection
Zweitens ist eine Erweiterung auf RouteCollection
Wenn Sie also eine Webforms-App haben, werden Ihre Routen in RouteCollection
definiert, sodass Sie die WebHost
-Version benötigen.
Weil Architektur es WebApi ermöglicht, auch von IIS gehostet zu werden. siehe Hosting WebApi
Ich habe gerade zwei neue Webforms-Apps erstellt (eine mit .NET 4, die andere 4.5), habe nichts mehr getan, als web api über nuget hinzuzufügen, und es hat funktioniert.
In welcher Version von ASP.NET läuft Ihre App? Wenn Sie ASP.NET WebForms 2.0 / 3.5 ausführen, wird es nicht unterstützt.
Hier ist ein Tutorial, das zeigt, wie Sie Web API zu Ihrer Web Forms App hinzufügen können - Ссылка
Tags und Links asp.net-web-api webforms vb.net asp.net-mvc-routing