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 Discussion :

[C#] Gestion URL


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut [C#] Gestion URL
    Bon je sais que le titre n'est pas très explicite et je m'en exuse mais je voyais mal comment introduire ma question.

    Plutot que de faire de longues explications, un exemple :

    Un site d'actualités. Aujourd'hui, les clients accèdent à une actualité précise en utilisant une adresse formée de la façon suivante :

    http://url_du_site/actualites.aspx?id=1

    Je souhaiterai que les clients accedent a la meme actualité avec une autre url (admettons que le titre soit "Longhorn en alpha") :

    http://url_du_site/Longhorn_en_alpha.aspx

    Sans qu'un fichier Longhorn_en_alpha.aspx soit créé. Si c'est plus simple, on peut meme imaginer accèder a l'actualité en utilisant

    http://url_du_site/Longhorn_en_alpha/

    Ma question est donc : comment y parvenir ?

  2. #2
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Je vois pas pourquoi tu ne veux pas utiliser ce genre d'url http://url_du_site/actualites.aspx?id=1 ?
    C'est plutôt très commode et courrant.

    Mais la question est que si cette page n'existe pas alors où prendra-tu le contenu, depuis la BD ?

    De plus, pour que le browser affiche le nom d'une page dans sa barre d'adresse, elle doit exister, il doit l'avoir pris reçu de quelque part, en occurence le serveur doit lui renvoyer une page qui existe... Même chose avec le server, quand tu lui demande la page http://url_du_site/Longhorn_en_alpha.aspx il doit la trouvé, sinon il génèrera un exception de type FileNotFound dans ton événement OnError du global.asax. Alors je vois pas comment régler ton problème... Mais il reste quand même intéressant, je suis curieux de savoir si quelqu'un à une solution sous asp.net. Sinon, il te faudrait un espèce de engin sur le serveur qui génère des page en realtime.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    La solution existe et est à chercher dans les HttpHandlers. C'est le système employé dans .Text, les blogs asp.net. Le problème avec les sources de .Text et la raison pour laquelle je n'ai pas trouvé la solution dans ces sources, c'est que tout est recoupé, avec des classes créées pour .Text, donc je n'ai pas d'exemple brut.

    Ce que je suis en mesure de dire, c'est que grâce à la gestion manuelle des HttpHandlers, tu es en mesure de délivrer des pages web dont le fichier n'existe pas, grâce à l'utilisation de contrôles ascx. Je pense avoir trouvé un site sur lequel je pourrais trouver réponse à ma question. Si j'arrive à faire ce que je veux, je posterai un extrait de code ici

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Ah et l'intérêt de faire ca, c l'optimisation du référencement dans les moteurs de recherche

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Bon c'est la fête j'ai trouvé.

    Dans web.config, rajouter (par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add verb="*" path="/actualites/*" type="projet.SimpleHandler, projet"/>
    Créer une classe (dans notre cas, SimpleHandler) avec le code suivant (toujours à titre d'exemple)

    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
    using System;
    using System.Web;
     
    namespace projet
    {
    	/// <summary>
    	/// Description résumée de Handlers.
    	/// </summary>
    	public class SimpleHandler : IHttpHandler 
    	{
    		public void ProcessRequest(HttpContext context) 
    		{
    			// Ici le code de traitement, par exemple context.Response.Write ("Hello World");
    		}
     
    		public bool IsReusable 
    		{
    			get 
    			{
    				return true;
    			}
    		} 
    	}
    }
    Avec ce code, vous pourrez par exemple appeler une page http://url_mon_site/actualites/nimportequoi.aspx

    Suffit alors de traiter l'url demandée et le tour est joué !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    J'ajouterai enfin que la MSDN en français est très peu fournie à ce sujet. La doc américaine est déjà beaucoup plus élaborée, et pourra être très utile :

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/httphandl.asp

  7. #7
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Merci d'avoir partagé avec nous ILoveCSharp, voilà un sujet que j'irai lire le plus tôt possible

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

Discussions similaires

  1. demande exemple gestion URL
    Par moonraker7 dans le forum VB.NET
    Réponses: 4
    Dernier message: 20/09/2010, 15h20
  2. [URL Rewriting] Gestion du ?
    Par piero-la-lune dans le forum Apache
    Réponses: 2
    Dernier message: 05/03/2008, 19h40
  3. Réponses: 4
    Dernier message: 28/01/2008, 17h55
  4. Réponses: 2
    Dernier message: 07/09/2007, 13h26
  5. Réponses: 4
    Dernier message: 30/12/2005, 11h07

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