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 :

Page.isPostBack ne fonctionne pas


Sujet :

ASP.NET MVC

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut Page.isPostBack ne fonctionne pas
    Bonjour.
    J'ai le code suivant:
    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
     
     
    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<iitgovern.Models.Course>" %>
     
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    	Search Course
    </asp:Content>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
     
        <h2>Search Course</h2>
     
        <% using (Html.BeginForm()) { %>
                <div class="editor-field">
                    <%= Html.TextBox("CourseCode") %>
                </div>
                <p>
                    <input type="submit" value="Search" />
                </p>
        <% } %>
     
        <% if (Page.IsPostBack)
           {
               if(Model != null)
                    Html.RenderPartial("Details", Model);
               else
               {
                   Html.RenderPartial("CourseNotFound");
               }
           }
     
        %>
     
    </asp:Content>
    Rien de bien compliqué, un formulaire, et un test qui me charge la bonne vue parielle... Sauf que voila, le Page.IsPostBack n'évalue jamais à true même quand je fait une recherche dans mon formulaire... Où ai-je péché?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 502
    Points
    1 502
    Par défaut
    Salut,

    Tu confonds deux approches: mvc et aspnet classique, tu fais soit l'un soit l'autre.

    Si tu fais du mvc, alors oublie le postback et le viewstate.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    ok. je fais du mvc. à ce moment là, quelle est la bonne approche pour obtenir ce que je veux?

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    C'est un écran de recherche qui renvoi des résultats ? un IEnumerable alors ?

    Une petite astuce :

    Si le model est null => tu n'affiches rien
    Si le model est un IEnumerable vide (count à 0) tu affiches "pas de résultats"
    Si le model contient des élements tu affiches ces élements.

    Sinon un boolean dans le ViewData

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Nikel, merci pour l'astuce. Sinon j'ai une autre petite question, en gros pour faire ma recherche je procède ainsi:

    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
     
            //this is a search method that returns all courses containing the parameter id
            //in their name or code
            public IEnumerable<Course> GetCoursesWithIdInNameOrCode(string id)
            {
                List<Course> coursesWithCode = db.Course.Where(c => c.course_code.Contains(id)).ToList();
     
                List<Course> coursesWithName = db.Course.Where(c => c.course_name.Contains(id)).ToList();
     
                foreach (Course c in coursesWithCode)
                {
                    //if coursesWithName doesn't contain c then we add c to it else we don't
                    //after this loop, coursesWithName = coursesWithName union coursesWithCode without duplicates
                    if (!coursesWithName.Contains(c))
                        coursesWithName.Add(c);
                }
                return coursesWithName;
            }
    Je sais pas s'il y a une méthode plus efficace de faire ça? En gros je veux chercher tous les Courses dont le nom OU le code contient le string passer en paramètre...

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 502
    Points
    1 502
    Par défaut
    Utilise un "Ou" tout simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Course> coursesWithName = 
       db.Course.Where(c => c.course_code.Contains(id) 
       || c => c.course_name.Contains(id)).ToList();

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par mermich Voir le message
    Utilise un "Ou" tout simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Course> coursesWithName = 
       db.Course.Where(c => c.course_code.Contains(id) 
       || c => c.course_name.Contains(id)).ToList();
    Lol. J'y avais pensé mais "l'opérateur de type "||" ne peut être appliqué aux opérandes de types 'expression lambda' et 'expression lambda' "...

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 502
    Points
    1 502
    Par défaut
    Re,

    J'ai fait une petite faute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<Course> coursesWithName = 
       db.Course.Where(c => c.course_code.Contains(id) 
       || c.course_name.Contains(id)).ToList();

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    merci

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

Discussions similaires

  1. Redirection de page qui ne fonctionne pas.
    Par JeanJean75 dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2010, 14h54
  2. Page 404 ne fonctionne pas !
    Par mikael2235 dans le forum Apache
    Réponses: 11
    Dernier message: 16/12/2009, 12h51
  3. Mise en page galerie ne fonctionne pas sous IE
    Par charlyy dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 27/11/2009, 18h47
  4. Page.isPostBack ne fonctionne plus. ?
    Par Alex35 dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/02/2009, 12h23
  5. Ma page ASP ne fonctionne pas
    Par vanou dans le forum ASP
    Réponses: 9
    Dernier message: 24/08/2006, 15h24

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