IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

MapRoute et sous dossiers


Sujet :

ASP.NET MVC

  1. #1
    Membre éclairé Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Par défaut MapRoute et sous dossiers
    Bonjour,

    J'aimerais faire un MapRoute avec des sous dossiers, je m'explique.

    Mon arborescence (que j'aimerais faire) :
    Controllers
    Undossier
    Test
    TestController.vb

    Views
    Undossier
    Test
    Index.vbhtml

    J'aimerais faire un MapRoute qui fonctionne commsi je n'avais pas mis le dossier 'Undossier'.

    Si je fait ceci, cela ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    routes.MapRoute( _
                "Test", _
                "Test/{action}/{id}", _
                New With {.controller = "Test", .action = "Index", .id = UrlParameter.Optional} _
            )
    J'aimerais connaitre la bonne syntaxe pour avoir une URL du type : monsite.fr/Test

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Par défaut
    j'ai trouvé :

    il faut faire une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Class MyRazorViewEngine
        Inherits RazorViewEngine
     
        Public Sub New()
            MyBase.New()
            MyBase.ViewLocationFormats = MyBase.ViewLocationFormats.Concat({"~/Views/Undossier/{1}/{0}.vbhtml"}).ToArray()
     
            MyBase.PartialViewLocationFormats = MyBase.PartialViewLocationFormats.Concat({"~/Views/Undossier/{1}/{0}.vbhtml"}).ToArray()
        End Sub
     
    End Class
    et ajouter dans la fonction Application_Start du global.asax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ViewEngines.Engines.Add(New MyRazorViewEngine())
    Comme ça mon url /Test fonctionne

  3. #3
    Membre éclairé Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Par défaut
    Il faut aussi faire une autre classe pour gérer les controller :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Public Class CustomControllerFactory
        Implements IControllerFactory
     
     
        Public Function CreateController(requestContext As System.Web.Routing.RequestContext, controllerName As String) As System.Web.Mvc.IController Implements System.Web.Mvc.IControllerFactory.CreateController
            If String.IsNullOrEmpty(controllerName) Then
                Throw New ArgumentNullException("Controller name can't be empty")
            End If
     
            If Not controllerName.Contains("favico") Then
     
                Dim controllerType As [String] = [String].Concat("MON_NAMESPACE.", controllerName & "Controller")
     
                Dim controller As IController = TryCast(Activator.CreateInstance(Type.[GetType](controllerType)), IController)
     
                Return controller
     
            End If
     
            Return Nothing
        End Function
     
        Public Function GetControllerSessionBehavior(requestContext As System.Web.Routing.RequestContext, controllerName As String) As System.Web.SessionState.SessionStateBehavior Implements System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior
            Return Nothing
        End Function
     
        Public Sub ReleaseController(controller As System.Web.Mvc.IController) Implements System.Web.Mvc.IControllerFactory.ReleaseController
            Dim disposableController As IDisposable = TryCast(controller, IDisposable)
            If disposableController IsNot Nothing Then
                disposableController.Dispose()
            End If
        End Sub
    End Class
    et ajouter dans la fonction Application_Start du global.asax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControllerBuilder.Current.SetControllerFactory(GetType(CustomControllerFactory))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire référence à un sous sous dossier ?
    Par Angeldu74 dans le forum Langage
    Réponses: 3
    Dernier message: 06/04/2006, 23h22
  2. Supprimer des sous-dossiers selon des critères
    Par Dertron dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 18/01/2006, 14h33
  3. Lire un fichier situé dans 2 sous dossier...
    Par Pleymo dans le forum Langage
    Réponses: 10
    Dernier message: 08/12/2005, 09h30
  4. Creation d'un dossier et des sous dossier
    Par fraizas dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 14/11/2005, 16h30
  5. Comment copier un dossier et ses sous dossiers ?
    Par touhami dans le forum Langage
    Réponses: 5
    Dernier message: 30/12/2004, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo