Wie zu Verwenden MVC-Controller und WebAPI Controller im gleichen Projekt
Ich versuche, mit MVC-Controller und WebAPI controller im gleichen Projekt, aber ich habe 404 Fehler für die webapi . Ich startete das Projekt als MVC-Projekt in vs 2015, aber dann Hinzugefügt, webapi controlle und mit Standard-code, es gibt 404 error
was möglich sein könnte, die Lösung . Ich habe versucht, eine Lösung auf Stackoverflow hat Sie aber nicht gearbeitet, einer von Ihnen ist über den link unten (Akzeptierten Antworten mehr gibt )
Alle ASP.NET Web-API-Controller return 404
Global.ASAX Datei-Code :
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);//WEB API 1st
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
WEBAPI.CONFIG-DATEI
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Route Config-Datei Code
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
WebAPI-Controller-CODE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using O365_APIs_Start_ASPNET_MVC.Models;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using O365_APIs_Start_ASPNET_MVC.Helpers;
using System.Threading.Tasks;
namespace O365_APIs_Start_ASPNET_MVC.Controllers
{
public class MAILAPIController : ApiController
{
private MailOperations _mailOperations = new MailOperations();
//async Task<BackOfficeResponse<List<Country>>>
//GET: api/MAILAPI
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
//GET: api/MAILAPI/5
public string Get(int id)
{
return "value";
}
//POST: api/MAILAPI
public void Post([FromBody]string value)
{
}
//PUT: api/MAILAPI/5
public void Put(int id, [FromBody]string value)
{
}
//DELETE: api/MAILAPI/5
public void Delete(int id)
{
}
}
}
AUCH IMMER NUGET RESTORE FEHLER IN DER GLEICHEN LÖSUNG
Fehler Nuget-Fehler beim wiederherstellen PNG
- Was macht den controller so Aussehen, dass Sie versuchen, zu nennen?
- Wo nennst du
WebApiConfig.Register
? - hinzufügen controller-code
- gehen Sie zu Datei hinzufügen code, in dem register heißt
- ich habe versucht, das hinzufügen, aber wenn ich mit dieser Zeile ----GlobalConfiguration.Konfigurieren(WebApiConfig.Register);---- nach Registerallareas in der application_start-Projekt gibt 404 runtime error. Durch Entfernen der genannten Zeile kann ich mvc-cotroller aber nicht webapi Controller und das hinzufügen von Linie-Laufzeit 404 für beide Controller
- webapi-controller-code ist Standard-ich habe einfach neue webapi cotroller mit readwrite-Aktionen
- zeigen Sie Ihren web-api-controller-code hier
- WebAPI-CODE HINZUGEFÜGT
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie sich das routing für web-api - VOR registrieren Sie sich das routing, MVC, also im Grunde Ihre
App_Start()
Funktion sollte wie folgt Aussehen:Fügen Sie einfach eine Zeile in Application_Start () - Methode der global asax Seite.
Haben Sie zwei-Routen-mapping auf die gleiche Weise. Entweder entfernen delete(id) oder(id). Alternativ können Sie die Aktion in Ihre route-mapping.
schreiben Sie die Konfiguration in der gleichen Datei wie das
in Global.aspx-Datei Bearbeiten Sie code wie diesen--