c# - mvc - asp.net tutorial



Wie Hinzufügen von Web-API zu einem vorhandenen ASP.NET MVC(5) Web Application-Projekt? (1)

Aktualisieren Sie das MVC-Projekt

Verwenden Sie Nuget , um die neueste Web-API zu erhalten.

Projekt - Rechtsklick - Nuget-Pakete verwalten - Nach Web-API (Microsoft ASP.NET-Web-API ...) suchen und in Ihrem MVC-Projekt installieren.

Dann müssen Sie noch Web-API-Routing zum funktionieren bringen. Von Microsoft Konfigurieren von ASP.NET Web API 2

Fügen Sie WebApiConfig.cs dem App_Start / -Ordner hinzu

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();
        }
    }
}

Wenn Sie ein MVC-Projekt haben, wird es Global.asax.cs haben , fügen Sie die neuen Routen hinzu. Reihenfolge der Global.asax.cs-Routen ist kritisch. Beachten Sie, dass es veraltete Beispiele gibt, die WebApiConfig.Register

Fügen Sie diese Zeile zu Global.asax.cs hinzu: 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);
}

WebAPI-Hilfe

Installieren Sie WebAPI.HelpPage, um die ( sehr ) hilfreichen WebAPI-Hilfeseiten zu erhalten. Siehe http://channel9.msdn.com/Events/Build/2014/3-644 (~ 42 Minuten in) für das, was es tut. Es sieht sehr hilfreich aus!

Nuget-Konsole: Install-Package Microsoft.AspNet.WebApi.HelpPage

Um zu überprüfen, ob WebAPI funktioniert:

Zum Controller-Ordner -> Neues Objekt hinzufügen -> Web-API-Controller-Klasse.

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";
    }
    //...
}

Jetzt können Sie wie gewohnt in IE / FF / Chrome oder in den JavaScript-Konsolen für Nicht-Get-Tests testen.

(Wenn nur der Controller in der URL die Aktion GET () im neuen Web-API-Controller aufruft, wird er je nach REST automatisch den Methoden / Aktionen zugeordnet, zB PUT / POST / GET / DELETE, Sie müssen ihn nicht aufrufen sie durch Aktion wie in MVC) Die URL direkt:

http://localhost:PORT/api/CONTROLLERNAME/

Verwenden Sie alternativ jQuery, um den Controller abzufragen. Führen Sie das Projekt aus, öffnen Sie die Konsole (F12 in IE) und versuchen Sie, eine Ajax-Abfrage auszuführen. (Überprüfen Sie Ihren PORT & CONTROLLERNAME)

$.get( "http://localhost:PORT/api/CONTROLLERNAME/", function( data ) {
    //$( ".result" ).html( data );
    alert( "Get data received:" + data);
});

Randnotiz: Bei der Kombination von MVC und Web-API in einem Projekt sind einige Vor- und Nachteile zu beachten

Überprüfung der WebAPI-Hilfe: http://localhost:PORT/help

Angenommen, Sie haben beim Erstellen eines neuen MVC (5) -Projekts vergessen, das Kontrollkästchen "Web-API" anzukreuzen (fügen Sie es dem Projekt hinzu). Was müssen Sie tun, um die Web-API hinzuzufügen und in Betrieb zu nehmen?

Es gibt eine Reihe von Migrationsfragen, aber keine scheint die vollständigen und aktuellen Schritte zum Hinzufügen der Web-API zu einem MVC 5-Projekt zu enthalten und scheint sich von einigen der alten Antworten geändert zu haben.

Fügen Sie Web-API zu MVC 4 hinzu

Hinzufügen von GlobalConfiguration.Configure (WebApiConfig.Register) MVC 4





asp.net-mvc-5