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 :

Appeler une m�thode en AJAX depuis une Vue User Control d'une Area


Sujet :

ASP.NET MVC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de blasil64
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par d�faut Appeler une m�thode en AJAX depuis une Vue User Control d'une Area
    Bonjour � tous,
    J'ai un projet ASP.NET, avec une AREA pour le code ASP.NET MVC 2.
    A la cr�ation de l'area, cela m'a cr�� un dossier "View" et un autre "Controller".

    Ma vue est une vue partielle, un ascx donc. A partir de cette vue, je cherche � taper dans une m�thode de mon controleur en ajax.

    Voici mon code depuis la vue :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script type="text/javascript">
        $("#<%=btnSearch.ClientID %>").click(function() {
            var text = $("#<%=tbSearchBox.ClientID %>").val;
            $.ajax({
                type: "GET",
                url: '/Areas/Settings/User/SearchUser',
                success: function(msg) {
                    alert("toto");
                }
            });
        });
    </script>
    Areas �tant le nom du dossier Area, Settings, le nom du dossier contenant les dossier controller et view, User �tant un controller du dossier Controller (UserController) et SearchUser est la m�thode que j'essaie d'appeller.

    Pour le moment cette m�thode ne contient juste :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            /// <summary>
            /// Évènement déclenché lors de la recherche d'un utilisateur.
            /// </summary>
            /// <param name="text">Le texte à chercher.</param>
            /// <returns>OK</returns>
            public string SearchUser(string text)
            {
                return "OK";
            }
    J'obtiens pour le moment dans Chrome :
    Avez-vous une id�e de comment r�aliser cela ?

    Merci d'avance pour votre aide !

  2. #2
    Membre exp�riment�
    Avatar de SoBaKa
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par d�faut
    Bonjour,

    Il me semble que l'adresse est incorrecte, tu ne dois pas mettre l'url vers le chemin "physique" de ton action mais plut�t la "route".

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    url: 'Settings/User/SearchUser'
    devrait fonctionner si tu n'a pas modifi� les routes.

  3. #3
    Membre �clair� Avatar de blasil64
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par d�faut
    Bonjour,
    Merci pour ta r�ponse, �a fonctionne tr�s bien � une donn� pr�s, vu que sous IIS, l'application web est un r�pertoire virtuel converti en application et porte le nom 'V2', la bonne url est la suivante :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    url: '/V2/Settings/User/SearchUser',
    Par contre, j'ai une seconde question.

    Ici, j'appelle une m�thode de mon controller. Par contre, ma vue est li� � un model :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MdbProcurement.Adoria.Web.Settings.Models.UserTreeViewModel>" %>
    Ce model contient des m�thodes et propri�t�s.

    Si par hasard je d�sire appeler une m�thode de ce model, je met :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <%=Model.SearchUser("test")%>
    Or l'erreur suivante apparait :

    The ViewUserControl '~/Areas/UControls/Views/Slider/Slider.ascx' cannot find an IViewDataContainer object. The ViewUserControl must be inside a ViewPage, a ViewMasterPage, or another ViewUserControl.
    Si j'enl�ve le param�tre dans l'appel de la m�thode :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <%=Model.SearchUser("")%>
    J'obtiens ce message d'erreur.
    Aucune surcharge pour la m�thode 'SearchUser' ne prend d'arguments '0'
    Il arrive bien � me retrouver l'existence d'une m�thode, mais je ne peux utiliser les balises <% %>

    Aurais-tu une explication et une solution pour ce probl�me ?

  4. #4
    Membre �clair� Avatar de blasil64
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par d�faut
    Il semblerait que ce soit � cause de l'impl�mentation de mon userControl.
    Depuis ma view webform, j'utilise :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <adoria:UserSlider runat="server" ID="SliderTreeView" />
    En incluant la directive Register :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <%@ Register TagPrefix="adoria" TagName="UserSlider" Src="~/Areas/UControls/Views/Slider/Slider.ascx" %>
    Il faudrait que j'utilise Html.RenderPartial, mais je ne suis pas sur que ce soit possible.

    Qu'en penses-tu ?

    Merci par avance de tes r�ponses !

  5. #5
    Membre exp�riment�
    Avatar de SoBaKa
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par d�faut
    Je suppose que tu utilise MVC avec les Pages ".aspx" que je n'ai jamais utilis�...

    Par contre ce qui m'�tonnes c'est que tu dis que ton mod�le contient des m�thodes que tu voudrais appeler depuis une vue... Or en toute logique, ton mod�le ne devrait contenir uniquement des propri�t�s.

    Pour rappel :

    Model -> Propri�t�s
    View -> Vue "Html"
    Controller -> Actions/M�thodes

  6. #6
    Membre �clair� Avatar de blasil64
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Octobre 2008
    Messages
    324
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 324
    Par d�faut
    Tout � fait d'accord avec toi, par contre, si je veux afficher la valeur des propri�t�s dans ma View, donn�es qui ont �t� remplies dans les diff�rentes m�thodes de mon contr�leur, je ne pourrais, pas � cause de l'erreur pr�c�dente.

    Comment rem�dier � ce probl�me ?

    Merci par avance de tes r�ponses !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 19/05/2014, 08h16
  2. R�ponses: 1
    Dernier message: 26/03/2011, 14h07
  3. R�ponses: 9
    Dernier message: 10/05/2007, 17h57
  4. R�ponses: 12
    Dernier message: 12/07/2005, 11h18

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