Forum de discussion
Forum « Programmation ASP » (archives)
Problème de communication entre ASP et C#
Envoyé: 19 juillet 2006, 11h26 par Prowlx
J'ai créé une page ASP par défaut avec le Web Development kit Express 2005 de MS
(donc utilise le framework .Net 2.0).
Cette page s'appele Default.aspx et le code C# qui lui est associé est Default.aspx.cs.
Cette page communique très bien avec les namespaces contenant d'autres classes C#.
Elle peut appeler les méthodes sur les pages C# par exemple : facadeUI.login(); Cela
fonctionne très bien.
Par contre, je me suis créé une fonction public dans la page web Default.aspx.cs soit
setNickName(string strNickName). J'aimerais pouvoir appeler cette méthode à partir des
classes C#. Je n'y arrive pas.
Comme vous pourrez le constater dans le code de Default.aspx.cs, j'envoie ma page courrante
à ma classe C# (FacadeUI facadeUI = new FacadeUI(this)). Dans ma classe facadeUI, je ne sais
pas quel type de classe lui donner pour pouvoir accéder aux méthodes publiques de ma page web.
On dirait qu'il n'y pas de namespace pour le using afin d'obtenir le type de "classe" de la
page web.
Voici le code du constructeur de ma classe C# facadeUI.
public FacadeUI(Page frmlogin)
{
this.frmlogin = frmlogin;
// J'aimerais pouvoir faire : frmlogin.setNickName("Toto");
// mais ne trouve pas la méthode puisque c'est du type Page...
}
J'ai mis comme type de classe Page. Bien sûr il faudrait qu'il y ait un type _Default ou
ASP.DefaultPage... ou quelque chose comme ça afin que je puisse accéder à
setNickName(string strNickName).
Donc mon problèm :
ASP vers C# fonctionne très bien (capable d'appeler facadeUI.login())
C# vers ASP ne fonctionne pas (pas capable d'appeler setNickName("Toto"))
Voici le code de Default.aspx.cs :
__________________________________________________________________________________
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//Namespace pour les classes C#
using Client.Controler;
using Client.Model;
using Client.View;
using Client.PatternObserver;
using Client.Remote;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
FacadeModel facadeModel = new FacadeModel();
FacadeUI facadeUI = new FacadeUI(this); //On lui donne la page courrante
facadeUI.login();
}
public void setNickName(string strNickName)
{
this.TextBox1.Text = strNickName; //TextBox1 est protected...
}
}
__________________________________________________________________________________
Merci,
Prowlx
Réponses
|