2009-01-21 4 views
1

Imaginons que je convertisse tout un tas de pages de contenu (dumb HTML) en modèle MVC. Je voudrais coller tous les fichiers HTML simples dans un répertoire et «les trouver» sur la base d'un contrôleur.Comment ajouter facilement beaucoup de pages html «stupides» à l'application ASP.NET-MVC

Cela ressemble à ce que fait le 'HomeController' dans le standard ASP.NET-MVC, mais je dois ajouter explicitement chaque page.

[HandleError] 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      ViewData["Title"] = "Home Page"; 
      ViewData["Message"] = "Welcome to ASP.NET MVC!"; 

      return View(); 
     } 

     public ActionResult About() 
     { 
      ViewData["Title"] = "About Page"; 

      return View(); 
     } 

     public ActionResult About2() 
     { 
      ViewData["Title"] = "About Page 2"; 

      return View(); 
     } 
    } 

j'ai ajouté une page About2.aspx dans le répertoire « Home », et a dû ajouter une méthode About2 dans le HomeController pour permettre l'URL http://localhost:51234/Home/About2.

Mais disons que j'ai 50 pages HTML et je veux les trouver en fonction de l'URL.

Comment pourrais-je y parvenir?

Répondre

3

Mettez à jour le gestionnaire d'acheminement dans global.asax pour ignorer le routage de vos pages statiques. Pour le rendre plus facile, je les mettrais dans un répertoire séparé.

routes.IgnoreRoute("static/myfile.htm"); 
+0

mais je veux quelque chose comme routes.IgnoreRoute ("static/*"); puis-je faire ça? –

+0

Avez-vous de la chance avec une réponse? – justSteve

0

la raison était de acomplish presque exactement la même chose que vous êtes désireux de faire le long temps il y a dans une galaxie lointaine, très lointaine, je soumettre un patch pour monorail Castle pour implémenter la fonctionnalité DefaultAction. La différence étant que les concepteurs avaient toujours besoin d'accéder à des données dynamiques comme les noms de connexion et autres dans les vues. Il semble que le ConventionController dans le MVC Contrib supporte la même fonctionnalité.

Fondamentalement, il vous permet d'avoir une méthode qui est appelée lorsqu'aucune autre méthode de correspondance n'est trouvée. Cette méthode peut regarder la requête et déterminer quelle vue afficher. Comme je l'ai dit, la beauté de cette solution est qu'un concepteur n'a pas besoin d'une méthode d'action de contrôleur codée pour chaque page qu'il veut montrer à l'utilisateur, mais il peut toujours accéder aux données disponibles que vous lui fournissez via le modèle.

Questions connexes