2013-06-06 1 views
0

Ok, alors voici mon problème: Je crée une application de magasin Windows 8 en javascript, qui récupère ses données à partir d'une API écrite en C# avec asp. Le magasin utilise plusieurs méthodes nécessitant deux champs (exemple: envoi d'un identifiant d'employé et d'un identifiant d'enregistrement pour vérifier si l'enregistrement appartient à l'employé et retourner plus de détails). Cependant, pour une raison quelconque, j'ai une méthode qui refuse tout simplement de travailler. Voici la méthode dans le contrôleur:Méthode de service Web qui reçoit deux valeurs/champs

[HttpGet] 
    [ActionName("teste")] 
    public IEnumerable<EmployeeProjectViewModel> teste(int iUserMasterId, int iEmployeeOrganizationsId) 
    { 
     var Query = from eprojects in db.EmployeeProjects 
        where eprojects.UserMasterId == iUserMasterId 
        && eprojects.Deleted == false 
        && eprojects.EmployeeOrganizationsId == iEmployeeOrganizationsId 
        select new EmployeeProjectViewModel 
        { 
         EmployeeProjectsId = eprojects.EmployeeProjectsId, 
         UserMasterId = eprojects.UserMasterId, 
         Name = eprojects.ProjectName, 
         Month = eprojects.ProjectMonth, 
         Year = eprojects.ProjectYear, 
         URL = eprojects.ProjectURL, 
         Description = eprojects.ProjectDescription, 
        }; 
     return Query; 
    } 

Et le code routeConfig:

   routes.MapHttpRoute(
name: "teste", 
routeTemplate: "api/{controller}/teste/{iUserMasterId}/{iEmployeeOrganizationsId}", 
defaults: new 
{ 
    action = "teste" 
}); 

L'erreur qu'il me donne est de 404: Méthode non trouvé dans le contrôleur (vérifié avec Fiddler). Le contrôleur est correct cependant parce qu'il y a plus de méthodes dans le contrôleur. J'ai également remarqué que d'autres méthodes dans le même contrôleur qui utilisent également plus d'un champ échouent aussi. Qu'est-ce que je fais de mal? J'ai comparé ces deux codes avec d'autres contrôleurs que j'ai qui fonctionnent également avec plusieurs champs et ils semblent tous fonctionner correctement.

EDIT: voici l'exemple de la demande:

{"$id":"1","Message":"No HTTP resource was found that matches the request URI 'http://localhost:55105/api/EmployeeProjects/teste/8/2'.","MessageDetail":"No action was found on the controller 'EmployeeProjects' that matches the request."} 
+0

ressemble à votre routage est un peu étrange. Vous devez inclure le code WHOLE du code routeConfig, car l'ordre est important. Cependant, je suppose que le problème est que la route que vous avez ajoutée n'est pas appelée du tout (puisque votre route par défaut est avant la route "teste" et votre modèle de requête correspond à cela). – Aron

+0

Ma valeur par défaut est après l'itinéraire "teste" *. J'ai essayé de changer les commandes et ça n'a pas marché de toute façon. Je ne vais pas ajouter tout le code routeconfig, c'est vraiment gros, et vous n'avez vraiment pas besoin de tout ça. S'il y a quelque chose dont vous avez besoin en particulier, il suffit de demander. –

+0

Aussi, même en cas d'échec, il entre dans le contrôleur, il ne trouve tout simplement pas la méthode. –

Répondre

0

Problème résolu. Apparemment, certains de nos collègues précédents avaient écrit des routes incomplètes dans le routeconfig, empêchant ainsi la reconnaissance de toutes les routes sous-jacentes.

Questions connexes