Salut J'ai un contrôleur comme indiqué ci-dessous,Carte Web Api MapHttpRoute à base Url
[RoutePrefix("")]
public class ApiInformationController : Controller
{
public ActionResult Index()
{
var info = new ApplicationInformation
{
ApplicationName = "Test App",
DatabaseName = "SQL Server 2012",
ApplicationVersion = "3.10.0"
};
return Json(info, JsonRequestBehavior.AllowGet);
}
}
J'ai également configuré les routes en WebApiConfig que je ne veux pas utiliser RouteConfig séparément,
private static void ConfigureRoutes(HttpConfiguration config)
{
_config = config;
// Web API routes
_config.MapHttpAttributeRoutes();
_config.Routes.MapHttpRoute("Default", "{controller}/{action}/{id}",
new {controller = "ApiInformation", action = "Index", id = RouteParameter.Optional});
_config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional});
}
Lorsque j'essaie d'accéder à l'URL de base, je souhaite que l'information Api soit affichée. Par exemple quand j'essaie http://localhost:23175/ Je voudrais que l'API appelle l'index de ApiInformationController. Qu'est-ce que je fais mal ici?
actuel quand je l'appelle l'URL que je reçois la réponse suivante,
-t-il travailler sans MapHttpAttributeRoutes? – Usman
utilisez-vous un projet MVC avec un projet API ou API? – Ashiquzzaman
@Vinay - Ashiquizzman a un point. MVC et Web Api sont des frameworks distincts, qui ont chacun leur propre routage, et vous devez vous assurer qu'ils ont des URL qui ne sont pas en conflit. Sur la base de vos balises MVC dans la question, il semble que vous essayez de mettre votre routage MVC dans la configuration Web Api (ou, vous doublez simplement sur vos routes, ce qui n'est pas une bonne chose). Les routes MVC doivent être ajoutées à votre fichier RouteConfig.cs, pas ici. – NightOwl888