2009-10-23 7 views
0

J'utilise des domaines partout et je suis vouloir quelque chose comme ce qui suit:zones et voies

http://localhost/MyArea/MySection/MySubSection/Delete/20 

Habituellement j'accéder à des choses en procédant comme suit:

http://localhost/MyArea/MySection/MySubSection/20 

Mais si je veux supprimer puis je dois dire

http://localhost/MyArea/MySection/DeleteEntryFromMySubSection/20 

Avec les routes, comment faites-vous cela? (Les routes ne sont pas réalistes par ailleurs, ils sont beaucoup plus concis que dans mon système)

EDIT: Ceci est lié spécifiquement à l'utilisation des zones, un ASP.NET MVC 2 Preview 2 fonctionnalité .

Répondre

0

Cela dépend de la structure de vos routes &.

Voici un exemple de route que vous pourriez vouloir utiliser.

Si vous voulez être en mesure d'appeler la route suivante pour supprimer:

http://localhost/MyArea/MySection/MySubSection/Delete/20 

Et supposons que vous avez un contrôleur appelé « MyAreaController », avec une action de « Supprimer », et pour le bien de simplicité, supposons que la section et du paragraphe sont des chaînes que par exemple:

public class MyAreaController : Controller 
{ 
    public ActionResult Delete(string section, string subsection, long id) 
    { 

Ensuite, vous pouvez créer un itinéraire de la façon suivante (dans votre Global.asax.cs, ou chaque fois que vous définissez vos itinéraires):

var defaultParameters = new {controller = "Home", action = "Index", id = ""};    

routes.MapRoute("DeleteEntryFromMySubSection", // Route name - but you may want to change this if it's used for edit etc. 
      "{controller}/{section}/{subsection}/{action}/{id}", // URL with parameters 
      defaultParameters // Parameter defaults 
      ); 

Remarque: Je définirais normalement des énumérations pour toutes les valeurs de paramètre possibles. Les paramètres peuvent alors être du type enum approprié et vous pouvez toujours utiliser des chaînes sur votre chemin. Par exemple. Vous pourriez avoir une énumération "Section" qui a une valeur "MySection".

+0

J'utilise des zones, une fonctionnalité ASP.NET MVC 2. Donc, ma route est comme 'http: // localhost/Area/Controller/Action/Parameter'. Consultez http://haacked.com/archive/2009/10/01/asp.net-mvc-preview-2-released.aspx pour plus de détails. – Kezzer

+0

Oh d'accord, merci pour cela ... le "professeur" devient l '"étudiant"! À votre santé :-) –

Questions connexes