2009-01-15 3 views
1

Dans mon fichier Global.asax.cs dans la méthode RegisterRoutes, je metsPourquoi le routage d'URL ASP.NET MVC ne trouve-t-il pas mon contrôleur?

routes.MapRoute("messages", 
    "Message/{id}", 
    new { controller = "Archive", action = "Message", id = 0 }); 

Puis j'ai créé ce contrôleur:

namespace TestingApp.Controllers 
{ 
    public class ArchiveController : Controller 
    { 
     public string Message(int id) 
     { 
      return "testing: you will receive the message: " + id.ToString(); 
     } 
    } 
} 

Mais dans mon browsser quand je vais:

http://.../Message/34 

Je reçois un 404.

De quoi d'autre ai-je besoin pour définir le le routage trouve mon contrôleur?

Répondre

4

Essayez de définir votre itinéraire spécifique avant le par défaut:

routes.MapRoute(
    "messages", 
    "Message/{id}", 
    new { controller = "Archive", action = "Message", id = 0 }); 

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = "" }); 
1

Je pense que votre méthode de message doit retourner une instance ActionResult:

public ActionResult Message(int id) 
{ 
    return new ContentResult { 
     Content = "testing: you will receive the message: " + id.ToString() 
    }; 
} 
+0

Un contrôleur retournant une chaîne est acceptable dans ASP.NET- MVC – AnthonyWJones

Questions connexes