Asp.Net MVC4 - + Web-API-Controller Löschen >> 404-Fehler

Ich habe VS2012 MVC4-Lösung, wo ich test-Web-API-Controller.

Habe ich erfolgreich getestet, die GET, POST, PUT, aber die LÖSCHEN immer noch, hab mir einen http 404-Fehler. Wenn ich einen Haltepunkt in mein 'DeleteMovie' action in meinem api-controller, der breakpoint wird nie erreicht.

Lese ich viele Beiträge über dieses problem, aber niemand hat mir geholfen.

Hier ist meine API-Controller für das LÖSCHEN:

    [HttpDelete]
    public HttpResponseMessage DeleteMovie(int id)
    {    
        //Delete the movie from the database     
        //Return status code    
        return new HttpResponseMessage(HttpStatusCode.NoContent);

    }

Hier ist meine html-Seite:

<script type="text/javascript">

    deleteMovie(1, function ()
    {
        alert("Movie deleted!");
    });

    function deleteMovie(id, callback) {
        $.ajax({
            url: "/api/Movie",
            data: JSON.stringify({ id: id }),
            type: "DELETE",
            contentType: "application/json;charset=utf-8",
            statusCode: {
                204: function () {
                    callback();
                }
            }
        });
    }

</script>

Meine klassische route ist wie folgt:

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

Mein routing für die API ist wie folgt:

    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "ActionApi", 
            routeTemplate: "api/{controller}/{action}/{id}", 
            defaults: new { id = RouteParameter.Optional }
        );

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }

In meiner Lösung-Eigenschaften, konfigurieren Sie die "Use local IIS Web server" mit "IIS Express' checked

Ich habe auch versucht mit 'Visual Studio Development Server", aber gleiche problem.

Irgendeine Idee?

Dank.

  • In Ihrem browser, wenn Sie sich der debug-tools, können Sie erfassen die URL, die tatsächlich bekommt emittiert, jQuery und sehen, ob es sieht gesund sein ?
InformationsquelleAutor Bronzato | 2013-02-28
Schreibe einen Kommentar