2010-10-28 13 views
2

J'essaie de comprendre comment acheminer mon application vers un contrôleur/une tâche/un ID par défaut lorsqu'aucune demande n'est spécifiée.Chemin d'accès par défaut d'ASP.NET MVC

Voici mon une instruction de routage ...

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new 
    { 
    controller = "LML", 
    action = "TaskLibrary", 
    id = 7 
    //id = UrlParameter.Optional 
    } // Parameter defaults 
    ); 

Avec cela, si je rentre dans 'http: // monsite /', le contrôleur bon/action/id est appelé. Cependant, j'aimerais que l'URL reflète cela. Plutôt l'URL reste intacte de ce que j'ai entré. En utilisant le routage, existe-t-il un moyen d'affecter l'URL afin qu'elle soit synchronisée avec le contrôleur/action/id qu'elle affiche par défaut? Ou dois-je créer une sorte d'action de redirection?

+0

veuillez marquer avec asp.net la prochaine fois ---- mvc est un terme générique, ce n'est pas spécifique à asp. –

Répondre

3

Le routage consiste à mapper une requête à une action, et non à la rediriger.

Vous pouvez modifier vos paramètres d'itinéraire par défaut par défaut à une autre action qui redirige simplement « LML/TaskLibrary/7 »

+0

Merci pour la réponse rapide. J'apprends juste MVC. Donc, vous suggérez que les paramètres d'itinéraire par défaut touchent une action du contrôleur qui redirige simplement vers une URL par défaut? Désolé si c'est évident. Encore à apprendre! –

+2

Gardez à l'esprit que les paramètres de route par défaut sont utilisés lorsqu'il n'y a pas de correspondance sur la requête. En utilisant votre route, les demandes suivantes sont les mêmes - "/", "/ LML", "/ LML/TaskLibrary" et "/ LML/TaskLibrary/7". C'est à vous de décider de la meilleure page d'atterrissage (pas de paramètres donc utilisez tous les paramètres par défaut) pour votre site. – Phil

2

Je suis nouveau à ASP.NET MVC 4, et comme souvent pour voir où le changement peut être fait. Donc, pour ceux qui aimeraient voir la réponse précédente dans le code ...

Dans RouteConfig.cs

routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "LML", action = "TaskLibrary", id = 7 } 
       ); 

La principale différence de l'exemple d'origine, est l'ajout de « défaut ».

J'espère que cela aide quelqu'un!