Aggiorna il progetto MVC
Utilizzare Nuget per ottenere l'API Web più recente.
Progetto - Clic destro - Gestisci pacchetti Nuget - Cerca API Web (API Web ASP.NET Microsoft ...) e installalo nel tuo progetto MVC.
Quindi devi ancora far funzionare il routing dell'API Web . Da Configurare ASP.NET Web API di Microsoft 2
Aggiungi WebApiConfig.cs nella cartella App_Start /
using System.Web.Http;
namespace WebApplication1
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// TODO: Add any additional configuration code.
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// WebAPI when dealing with JSON & JavaScript!
// Setup json serialization to serialize classes to camel (std. Json format)
var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
formatter.SerializerSettings.ContractResolver =
new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
}
}
}
Se hai un progetto MVC avrà Global.asax.cs , aggiungi i nuovi percorsi. L'ordine delle rotte Global.asax.cs è fondamentale. Nota che ci sono esempi obsoleti che usano
WebApiConfig.Register
Aggiungi questa linea a Global.asax.cs:
GlobalConfiguration.Configure(WebApiConfig.Register);
protected void Application_Start()
{
// Default stuff
AreaRegistration.RegisterAllAreas();
// Manually installed WebAPI 2.2 after making an MVC project.
GlobalConfiguration.Configure(WebApiConfig.Register); // NEW way
//WebApiConfig.Register(GlobalConfiguration.Configuration); // DEPRECATED
// Default stuff
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Guida di WebAPI
Per ottenere le ( molto ) utili pagine di aiuto di WebAPI , installare WebAPI.HelpPage. Vedi http://channel9.msdn.com/Events/Build/2014/3-644 (~ 42 minuti in) per quello che fa. Sembra molto utile!
Console Nuget: Install-Package Microsoft.AspNet.WebApi.HelpPage
Per verificare che WebAPI funzioni:
Nella cartella dei controller -> Aggiungi nuovo elemento -> Classe controller API Web.
public class TestController : ApiController
{
//public TestController() { }
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(int id)
{
return "value";
}
//...
}
Ora puoi testare in IE / FF / Chrome come al solito, o nelle console JavaScript per i test non get.
(Con solo il controller nell'URL, chiamerà l'azione GET () nel nuovo controller API Web, verrà automaticamente mappato su metodi / azioni in base al REST, ad esempio PUT / POST / GET / DELETE. Non è necessario chiamare li per azione come in MVC) L'URL direttamente:
http://localhost:PORT/api/CONTROLLERNAME/
In alternativa, utilizzare jQuery per eseguire una query sul controller. Esegui il progetto, apri la console (F12 in IE) e prova a eseguire una query Ajax. (Controlla il tuo PORT & CONTROLLERNAME)
$.get( "http://localhost:PORT/api/CONTROLLERNAME/", function( data ) {
//$( ".result" ).html( data );
alert( "Get data received:" + data);
});
Nota a margine: ci sono alcuni pro / contro da considerare quando si combinano MVC e API Web in un progetto
Verifica della Guida di WebAPI:
http://localhost:PORT/help