Apicontroller in MVC-Projekt - HTTPPOST- und JSON-Methode wird nicht erkannt
-
24-12-2019 - |
Frage
Ich habe ein normales ASP.NET-MVC-Projekt (keine Web-API).Hier erstellte ich einen neuen Ordner in meinen Controller namens "API", da ich eine einfache API erstellen möchte.
Ich erstellen dann die folgende Klasse:
generasacodicetagpre.Hier bekomme ich zwei Probleme:
- .
- httppost: führt zu "mehrdeutige Referenz" (zwischen dem http.httpostattribute und dem mvc.httppostattribute)
- json () ist nicht erkannt.Es gibt mir einfach ein "Symbol JSON" nicht aufgelöst "JSON"
Wenn ich mich richtig erinnere, würde dies in einem Web-API-Projekt funktionieren.
Was mache ich falsch?Etwas, das ich hinzufügen muss?
Lösung
lars, zweite frage=> Sie können nur offeproductViewModel anstelle von Jsonresult zurückgeben. Jsonresult ist ein ActionResult, das nicht in Webapi verwendet wird.
jsonresult befindet sich im system.web.mvc-Namespace, wo sich der APICONTROLLER im System.Web.http (Web-API-Sachen) befindet.
Erste Frage=> Vergewissern Sie sich, dass Sie nicht auf system.web.mvc in Ihrem APCONTROLLER, nur system.web.http referenzieren.In beiden Namenspaces gibt es ein HTTPPOST-Objekt, in dem Sie die MVC-Version nicht verwenden möchten.
Um JSON als Standard-Return-Typ auf Apicontrollers anstelle von XML einzustellen, können Sie dies in Ihrer WebapiconFig-Klasse wie so verwenden;
generasacodicetagpre.Scott Hanselman hat auch einen schönen Artikel dazu; http://www.hanselman.com/blog/oneaspnetmakingjsonwebapiswithnnnnnmvc4betaNaSpnetwebapi.aspx