[ASP.NET/C#] UserControl Dynamisch laden

Pagina: 1
Acties:

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Hallo,

Ik zit met een probleempje.

Ik wil graag usercontrols dynamisch gaan laden in mijn webapplicatie, aan de hand van een id.

Ik heb een opzet gemaakt en die werkt als ik hem locaal run vanuit VS.NET.

Als ik hem nu copieer naar de webserver die niet locaal is dan krijg ik de melding dat hij een bepaalde class niet kan vinden.

de opzet is als volgt:

index.aspx

code:
1
<%@ Page language="c#" Src="index.aspx.cs" AutoEventWireup="false" Inherits="OW3.index" %>


index.aspx.cs

code:
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
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace OW3
{

    public class index : System.Web.UI.Page
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            if  (! Page.IsPostBack)
            {
                LoadItems(1);   
            }
        }

        private void LoadItems(int pageid)
        {
                        test content= new test(1);
            Controls.Add(content);
        }

    }
}


test.ascx.cs

code:
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
namespace OW3
{
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.UI;

    public class test : System.Web.UI.UserControl
    {
        
        public test(int contentid)
        {
            string strtemp = contentid.ToString();
            content = "content id =" + strtemp;
            content += "<br />Hello World";
        }

        private void Page_Load(object sender, System.EventArgs e)
        {
            
        }
        
        protected override void Render(HtmlTextWriter output)
        {

            output.Write(content);
            
        }
        private string content;
    }
}


error


Compiler Error Message: CS0246: The type or namespace name 'test' could not be found (are you missing a using directive or an assembly reference?)


Ik heb ook al met Loadcontrol zitten spelen maar dat gaf dezelfde error.
Wat doe ik fout?

Wat ik raar vind is dat het locaal wel werkt maar op de webserver niet :?

Ik compile de pagina niet voor ik hem kopieer, ik wil hem graag @ runtime laten compileren.

Ik hoop dat jullie mij weer een stukkie op weg kunnen helpen.

[ Voor 3% gewijzigd door 4of9 op 15-07-2004 10:58 ]

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 19-05 13:17
Gebruik eens de web deployment optie in VS.NET

En waarom wil je @runtime compilen? Probeer eerst de boel eens werkend te krijgen door gewoon de dll naar je provider te sturen als je dat nog niet hebt geprobeerd

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
het niet een server bij een provider maar onze testserver.

Ik gebruik ook vs.net om de applicatie te bouwen, maar volgens de vele handleidingen zou je gewoon je applicatie naar je server kunnen kopieren en dan runnen.

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

4of9 schreef op 15 juli 2004 @ 12:38:
het niet een server bij een provider maar onze testserver.

Ik gebruik ook vs.net om de applicatie te bouwen, maar volgens de vele handleidingen zou je gewoon je applicatie naar je server kunnen kopieren en dan runnen.
Je moet wel eerst de boel compileren als je met codebehind werkt, er wordt wat anders bedoeld met Xcopy-deployment dan gewoon je bronbestanden kopieren.

[ Voor 5% gewijzigd door gorgi_19 op 15-07-2004 12:40 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Als ik de solution build en run op localhost dan werkt het gewoon.

Wat moet ik nu doen om de applicatie naar de webserver te kopieren en het ook te laten werken.

Als ik de net gebuilde solution kopier geeft ie de volgende error:

Parser Error Message: Could not load type 'OW3.index'.

Als ik dan het Codebehind attribuut vervang voor "Src" dan krijg ik weer de error dat de klasse test niet geladen kan worden....

I'm a little confused....:?

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

Ook de .dll's in de /bin folder mee kopieren. Daarnaast de folder op de webserver als application definieeren.

[ Voor 43% gewijzigd door gorgi_19 op 15-07-2004 12:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
Heb ik ook gedaan, maar ook dat resulteert in dezelfde error.

De applicatie is nu exact hetzelde als locaal, en daar werkt hij wel. Alleen op de testserver genereerd hij de error.

Moet ik nog de @ Assembly of @ register directive mee geven?

(het is nog steeds dezelfde code als in de startpost)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 19-05 13:17
Gebruik eens de automatisch deploy optie in Visual Studio.NET Die zit bovenin de solution explorer. Even target ingeven, username and password. en dan zal hij alle benodigde bestanden (of meer) kopieren naar de web server

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
zelfde probleem, zelfs nu ik de code heb herschreven en een nieuwe solution heb aangemaakt.

Hoe doen jullie dat? alles testen op een live server of gewoon van locaal naar live kopieren? Moeten frontpage extensies geinstalleerd zijn ofzo?

ik snap het niet helemaal meer?

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Lokaal testen en dan met een web setup deployen op de live server.
Meer info bijv. hier: http://www.15seconds.com/issue/030806.htm

Today's subliminal thought is:


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ah thx, ga ik meteen lezen!

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...

Pagina: 1