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 :

media url dans web.config


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut media url dans web.config
    Bonjour,

    Je souhaite mettre la racine de mes media dans une cle webconfig.
    l'interet est de pouvoir deplacer mes media et avoir juste une cle dans webconfig a changer.
    du coup dans mes images je mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    src="<%= System.Configuration.ConfigurationManager.AppSettings["urlmedia"]%>
    mais lorsque j'essaie de mettre la meme chose dans un composant asp image, ca plante.

    la seul solution que j'ai trouvé est de mettre dans un page_init en code behind.
    ce qui m'oblige a implementer cette methode parfois inutile dans certaine page.

    y a t il une solution ou une methode plus propre ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    mars 2011
    Messages
    3 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : mars 2011
    Messages : 3 180
    Points : 19 997
    Points
    19 997
    Par défaut
    Bonjour,

    Tu pourrais être plus précis quand tu dis que "ça plante" ?
    Un message d'erreur peut être ?
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    message d'erreur :

    Les balises serveur ne peuvent pas contenir des constructions <% ... %>.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 545
    Points : 9 851
    Points
    9 851
    Billets dans le blog
    3
    Par défaut
    Je crois qu'il n'est pas possible de faire ça dans le fichier ASPX. Il faut passer par le code behind.

    Tu peux donc le faire sur chaque page, pour chaque image, ou bien créer ton propre type héritant du type Image par défaut. Dans ce nouveau type, tu overrides la méthode Render() afin d'inclure ton préfixe.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    et il n'y pas d'autre methode pour faire ca ?

    le but etant de mettre la racine de l'url du server de media afin de pouvoir changer de serveur en une seule modif plutot de que changer dans toute les pages.

  6. #6
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    mars 2011
    Messages
    3 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : mars 2011
    Messages : 3 180
    Points : 19 997
    Points
    19 997
    Par défaut
    Ben euh que tu le fasses dans le code behind change rien

    Tu peux toujours passer par une variable de configuration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected string urlmedia= System.Configuration.ConfigurationManager.AppSettings["urlmedia"] as string;
     
    protected void Page_Load(object sender, EventArgs e)
        {
               aspImage.ImageUrl = urlmedia;
        }
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    février 2010
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : février 2010
    Messages : 3 545
    Points : 9 851
    Points
    9 851
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Matt_NewDev Voir le message
    et il n'y pas d'autre methode pour faire ca ?
    Si, en créant ton propre contrôle, comme je l'ai mentionné dans mon post un peu plus haut.

    Disons que tu l'appelles "CustomImage". Il devra hériter du type "System.Web.UI.WebControls.Image". Dans ce contrôle, tu overrides la propriété ImageUrl afin d'aller chercher ton chemin dans le Web.config directement.

    Exemple :

    Code C# : 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
    using System.ComponentModel;
    using System.Configuration;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    [DefaultProperty("ImageUrl")]
    [ToolboxData("<{0}:CustomImage runat=server></{0}:CustomImage>")]
    public class CustomImage : Image
    {
        [Bindable(true)]
        [DefaultValue("")]
        [Localizable(true)]
        public override string ImageUrl
        {
            get
            {
                return ConfigurationManager.AppSettings["ImagesPath"] + "/" + base.ImageUrl;
            }
            set
            {
                 base.ImageUrl = value;
            }
        }
     
        protected override void RenderContents(HtmlTextWriter output)
        {
     
        }
    }

    Utilisation :

    Code ASP.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    <cc1:CustomImage ID="CustomImage1" runat="server" ImageUrl="image.png" />

    avec dans le web.config :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <appSettings>
        <add key="ImagesPath" value="/Images" />
    </appSettings>

    Rendu final :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id="CustomImage1" src="/Images/image.png" />
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    Merci pour vos reponses.

    Le but aussi etait de passer par des scriptlets dans la page asp directement.
    ca evite de poser une image dans le code asp et d'etre obligé de faire un appel dans le codebehind juste pour passer ImageUrl.

    J'ai reussi a poser mon url de mon webconfig de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageUrl="<%$AppSettings:mediaUrl%>"
    mais il faut que je complete cette url avec l'image.
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageUrl="<%$AppSettings:mediaUrl%>image.jpg"
    mais ca ne marche pas.

    Je suis ouvert au propositions.

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 604
    Points : 13 210
    Points
    13 210
    Par défaut
    Citation Envoyé par Matt_NewDev Voir le message
    Merci pour vos reponses.

    Le but aussi etait de passer par des scriptlets dans la page asp directement.

    Quel avantage à cela ? (à part compliquer la vie de celui qui passe après toi sur l'application).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  10. #10
    Expert éminent
    Avatar de Immobilis
    Inscrit en
    mars 2004
    Messages
    6 550
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 6 550
    Points : 8 181
    Points
    8 181
    Par défaut
    Salut
    Citation Envoyé par Matt_NewDev Voir le message
    Je suis ouvert au propositions.
    Et avec une expression personnalisée: http://dotnet.developpez.com/faq/asp...omexpressesion
    Citation Envoyé par Bluedeep Voir le message
    compliquer la vie de celui qui passe après toi sur l'application
    C'est toujours compliqué de reprendre une application.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 604
    Points : 13 210
    Points
    13 210
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    C'est toujours compliqué de reprendre une application.
    Raison de plus pour ne pas en rajouter.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  12. #12
    Expert éminent
    Avatar de Immobilis
    Inscrit en
    mars 2004
    Messages
    6 550
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 6 550
    Points : 8 181
    Points
    8 181
    Par défaut
    Et en quoi serait-ce une mauvaise solution selon toi?
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/07/2010, 10h22
  2. autorisation dans web.config
    Par brassmonkey dans le forum Framework .NET
    Réponses: 1
    Dernier message: 06/06/2007, 17h35
  3. [2.0] MasterPage dans Web.config
    Par Hokutomarsouin dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/05/2007, 13h22
  4. [IIS][SQL Server] Problème de chaine de connexion dans web.config
    Par skystef dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/02/2007, 14h57
  5. Réponses: 2
    Dernier message: 08/01/2007, 23h18

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