2015-10-13 2 views
3

Bonjour et merci de prendre votre temps pour m'aider.Mvc api n'accédez pas à la fonction Valeur

J'ai utilisé ce guide pour essayer d'en savoir plus sur les appels api avec mvc.

Mais quand j'écris Localhost: xxxxx/api/valeurs je reçois l'erreur 404, et je ne peux pas sembler savoir pourquoi.

WebApiConfig.cs

namespace APITEST 
{ 
    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 } 
      ); 

     } 
    } 
} 

Index2.cshtml

<script src="~/Scripts/jquery-2.1.4.min.js"></script> 
<script> 
    $(document).ready(function() { 
     $.ajax({ 
      url: "http://localhost:49866/api/Values", 
      //url: '/API/Value', 
      type: "Get", 
      success: function (data) { 
       for (var i = 0; i < data.length; i++) { 
        $("<tr><td>" + data[i].Name + "</td></tr>").appendTo("#tbPerson"); 
       } 
      }, 
      error: function (msg) { console.log(msg) } 
     }); 
    }); 
</script> 

ValuesController.cs

public class ValuesController : ApiController 
    { 
     PersonEntities db = new PersonEntities(); 
     // GET api/values 
     public IEnumerable<Person> Get() 
     { 
      return db.Persons.ToList(); 
      //return new string[] { "value1", "value2" }; 
     } 
    } 

Quelqu'un peut-il voir pourquoi je reçois l'erreur 404?

+0

est-il confirmé à propos de cette URL localhost: 49866 ??? –

+0

avez-vous vérifié la console pour l'URL? –

+0

Je peux confirmer que lorsque j'exécute mon projet mon localhost est Localhost: 49866, Comme vous pouvez le voir quand je lance mon Home/Index2 et que je regarde dans ma console il dit: http: // localhost49866/api/values ​​avec l'erreur: Impossible de charger la ressource: le serveur a répondu avec un statut de 404 (non trouvé) –

Répondre

1

Avez-vous veillé à ce que votre Application_Start() dans votre fichier Global.asax contienne le code suivant?

protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 
      WebApiConfig.Register(GlobalConfiguration.Configuration); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      BundleConfig.RegisterBundles(BundleTable.Bundles); 
      GlobalConfiguration.Configuration.EnsureInitialized(); 
     } 
+0

Merci, il a résolu le problème, mais pas je viens d'obtenir une erreur 500 interne du serveur –