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 :

AJAX et Vue partielle


Sujet :

ASP.NET MVC

Vue hybride

skwi6 AJAX et Vue partielle 05/12/2011, 10h08
NicoL__ Le submit devrait se faire en... 05/12/2011, 17h08
skwi6 Pour l 'updateTargetId , si... 05/12/2011, 17h19
NicoL__ Peut-être que me problème que... 05/12/2011, 18h49
skwi6 Ca ne marche toujours pas :? 06/12/2011, 09h39
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut AJAX et Vue partielle
    Bonjour,

    Je rencontre un petit problème avec ma page de login.
    En effet lorsque j'essaye de me logguer, j'arrive à appeler la méthode de mon controller, cependant je fais un full postback et ensuite au retour j ai uniquement la vue du login.

    Ma vue annonce ou j'insère la vue login:
    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
     
     
    @{
        Layout = null;
    }
    @model List<MvcFindIt.Models.AnnnonceCarModel>
    <!DOCTYPE html>
     
    <html>
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title</title>
        <link href="@Url.Content("~/Content/Annonce.css")" rel="stylesheet" type="text/css" />
        <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
    </head>        
    <body>
    <div id="registerPane" class="panelRegister">
            <div class="panelContentRegister">
                <div class="contentRegister">
                    @Html.Partial("LogIn", new MvcFindIt.Models.LogOnModel())
                </div>
            </div>
            <div class="panelBar">
                <a href="javascript:void('0');" id="btBarOpen">S'identifier | S'enregistrer</a>
                <a href="javascript:void('0');" id="btBarClose" >Fermer</a>
            </div>
        </div>
    </body>
    </html>
    Mon controller annonce :
    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
     
    public class AnnonceController : Controller
        {
            //
            // GET: /Annonce/
     
            public ActionResult Annonce()
            {
                return View();
            }
     
            public ActionResult LogIn(LogOnModel logOnModel)
            {
                if (ModelState.IsValid)
                {
                    if (logOnModel.UserName.Equals("l"))
                    {
     
                        return RedirectToAction("Annonce", "Annonce");
                    }
                    else
                    {
                        ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    }
                }
     
                // If we got this far, something failed, redisplay form
                return PartialView(logOnModel);
            }
        }
    Et ma vue login :
    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
     
    @model MvcFindIt.Models.LogOnModel
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
     
    @using (Ajax.BeginForm("LogIn", "Annonce", new AjaxOptions { UpdateTargetId = "formRegister", InsertionMode = InsertionMode.Replace }))
    {
        <div id="formRegister">
            <div class="lp">
                @Html.LabelFor(m => m.UserName)     
                @Html.TextBoxFor(m => m.UserName)
                @Html.ValidationMessageFor(m => m.UserName)
            </div>
            <div class="lp">
                @Html.LabelFor(m => m.Password)  
                @Html.PasswordFor(m => m.Password)
                @Html.ValidationMessageFor(m => m.Password)
            </div>
            <div class="remember">
                @Html.CheckBoxFor(m => m.RememberMe)
                @Html.LabelFor(m => m.RememberMe)
            </div>
            <input type="submit" value="Se connecter" />      
        </div>          
    }
    Savez vous d'où vient l'erreur ?

    Merci

  2. #2
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Le submit devrait se faire en ajax, il manque peut-être un fichier js.
    Il faut vérifier dans la page sur le client que la "form" de la partial view login a bien été interprété pour faire de l'ajax avec, que je javascript est bien autorisé par exemple.
    Sinon je pense que UpdateTargetId = "formRegister" n'est pas bon (mais je peux me tromper) à mon avis le UpdateTargetId ne peut être inclus dans sa propre partial view.
    Je mettrais UpdateTargetId = "contentRegister".

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Pour l 'updateTargetId , si je mets "contentRegister" , ça ne marche pas non plus.
    Ensuite pour les fichiers javascript j'ai mis ce que j'ai pu voir sur le net.

    Ensuite j'ai aussi ajouté dans mon Web.config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <add key="ClientValidationEnabled" value="true"/>
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>

  4. #4
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Peut-être que me problème que ceci peut aider, je ne sais si cela change quelque chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     @{ Html.RenderPartial("LogIn", new MvcFindIt.Models.LogOnModel()); }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Ca ne marche toujours pas

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Je crois que j'ai trouvé, il me manquait le fichier js suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

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

Discussions similaires

  1. [javascript] vue partielle - Validation côté client simple
    Par antrax2013 dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 15/01/2011, 09h26
  2. Menu - Vue partielle - Treeview
    Par antrax2013 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 09/11/2010, 14h35
  3. [1.x] Rester dans un vue partielle pour l'affichage des erreurs
    Par undercrash dans le forum Symfony
    Réponses: 3
    Dernier message: 13/08/2010, 01h33
  4. Construction de vue partiel
    Par lesanglier dans le forum Ruby
    Réponses: 1
    Dernier message: 21/04/2010, 11h28
  5. [ASP.NET MVC] Codebehind d'une vue partielle
    Par Nadd dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/10/2009, 13h59

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