2009-11-02 2 views
1

Pour le contrôleur ci-dessous, pourquoi un appel à http://localhost:port/content/about ne transmet pas "about" comme valeur pour le paramètre de page du contrôleur d'index? Routage par défaut Clairement, je ne comprends pas le routage ...Comment changer les pages dynamiques mvc route url - Pourquoi cela ne fonctionne pas?

public class ContentController : Controller 
    { 
     private IContentService _service; 

     public ContentController() 
      { 
       _service = new ContentService(new ModelStateWrapper(this.ModelState), new ContentRepository()); 
      } 


     public ActionResult Index(string page) 
     { 
      return RedirectToAction("View", new { p = page }); 
     } 
     public ActionResult Page(string p) 
     {  
      ContentPage contentPage = _service.GetPageContent(site, p); 
      return View(contentPage); 
     } 
} 
+0

Veuillez poster votre configuration de route. – Min

+0

Ceci est avec l'installation par défaut asp.net mvc –

Répondre

1

Le routage par défaut suppose que vous utilisez le modèle suivant: {action}/{id}. Vous n'utilisez pas cela. Vous devez re-déclarer votre route afin qu'elle envoie tout à l'action "Index" et passe le paramètre "p".

+0

Merci. Je n'avais pas réalisé que c'était le nom du paramètre qui l'avait fait. Je pensais que c'était juste ce qui était passé en premier. –

0

Exécutez-vous IIS6? Si c'est le cas, assurez-vous de mapper le fichier asp.net isapi dll à l'extension .mvc.

Le routage me tue la semaine dernière jusqu'à ce que je découvre ...

+0

Personnellement, je le par défaut .aspx. Moins de travail lors du déploiement. – Min

Questions connexes