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 :

ui dialog au démarrage - asynchrone


Sujet :

ASP.NET MVC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2003
    Messages : 42
    Par défaut ui dialog au démarrage - asynchrone
    Bonjour,
    Ma méthode Index() de mon controller doit charger des données en db : cela dure 5-6 s.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public ActionResult Index()
    {       
    <div style="margin-left:40px"> //chargement dans la DB...
    return View();</div>}
    Je voudrais afficher un ui dialog pendant ce temps.
    Problème, je n'ai aucun code HTML chargé à ce moment-là.
    J'ai pensé à faire ça en asynchrone sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public ActionResult IndexAsync()
    {       
    <div style="margin-left:40px">return View("Splashscreen", null);</div>}
     
    public ActionResult IndexCompleted()
    {
    <div style="margin-left:40px"> //chargement dans la DB...
    return View();</div>}
    Est-il de possible d'afficher une vue au démarrage (vue d'attente) puis de passer à la vraie vue quand le chargement est fini?

  2. #2
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Salut,

    Tu crée une vue assez simple qui ne demande pas de long temps de traitement.

    Et dans ta vu tu fais un appel Ajax qui va aller récupérer tes données.

    Dans l'exemple ci-dessous il ne faut pas oublier d'inclure JQuery.

    Controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public class TestApiController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
        }
    ApiController :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class TestApiApiController : ApiController
        {
            public HttpResponseMessage GetById(int id)
            {
                    Thread.Sleep(10000);
                    string retValue = "Le retour";
                    return Request.CreateResponse(HttpStatusCode.OK, retValue);
                }
    }
    Vue :
    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
    @{
        ViewBag.Title = "Index";
    }
     
    <h2>Index</h2>
        <label id="lblTest"></label>
    <label id="lblError"></label>
    @section scripts
    {
    <script type="text/javascript">
    var apiUrl = "api/TestApiApi"
    $(document).ready(function () {
    $.getJSON(apiUrl + '/' + 1)
                    .done(function (data) {
                        $("#lblTest").text(data);
                    })
                    .fail(function (jqXHR, textStatus, err) {
                        $('#lblError').text('Error: ' + err);
                    });
    });
    </script>
    }
    Je n'ai pas testé ce code... j'ai fait un copié coller(renommer) d'un code qui fonctionne donc il peut manquer un ou deux trucs mais l'idée est là !

    Pour info mais a utiliser plus tard : Il y a des libraires JS pour faire du Binding (Angular, Knockout, ...)

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

Discussions similaires

  1. Dialog de démarrage
    Par Akim13 dans le forum MFC
    Réponses: 5
    Dernier message: 15/09/2005, 10h09
  2. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  3. Quoi ?! Common Dialog fait crasher DirectDraw ?
    Par Magus (Dave) dans le forum DirectX
    Réponses: 4
    Dernier message: 21/10/2002, 19h01
  4. Problème de démarrage d'InterServer
    Par Isaac dans le forum InterBase
    Réponses: 5
    Dernier message: 19/09/2002, 18h22
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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