Avatar billede pede5000 Nybegynder
26. april 2007 - 09:37 Der er 5 kommentarer

.NET 1,1: Kode i Code-Behind klasse ignoreres

Hey.

Jeg har oplevet det mest bizarre. Jeg har udviklet i ASP.NET 1.1 og 2.0 i flere år og har aldrig oplevet noget lignende. Jeg har lavet en løsning til en kunde i v1.1 som har virket fint. Løsningen består af ca. 50 sider og én af dem opførte sig mærkeligt - lad os kalde den side for bizar.aspx. Til bizar.aspx haves bizar.aspx.cs som code-behind klasse.
På bizar.aspx haves en form, og når der trykkes på submit-knappen, genindlæses bizar.aspx siden straks. Hvis jeg lægger kode ind i Page_Load(...) bliver denne kode ikke eksekveret. Det mærkelige er, at dette kun sker på denne ene side. Og endnu mærkeligere er, at det ikke sker på andre maskiner, hvor systemet er installeret.

Har nogen oplevet denne bizarre opførsel før, og endnu vigtigere: Har nogen en løsning på det?
Avatar billede dr_chaos Nybegynder
26. april 2007 - 10:13 #1
prøv lige at paste page directive fra bizar.aspx of selve klasse deklarationen fra codebehind.
Avatar billede snepnet Nybegynder
26. april 2007 - 20:22 #2
Også gerne din initialiseringskode fra .cs filen.
Mvh
Avatar billede pede5000 Nybegynder
28. april 2007 - 18:46 #3
Selvom der ikke er noget galt med koden - den virker jo fint på andre maskiner, så kommer den da her: (den hedder dog ikke bizar.aspx men Default.aspx)

<%@ Page Language="c#" AutoEventWireup="true" inherits="_Default" CodeBehind="Default.aspx.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

<html xmlns="http://www.w3.org/1999/xhtml" >
  <HEAD>
    <title>Fed titel</title>
    <link rel="stylesheet" type="text/css" href="styles.css" >
  </HEAD>
<body onload='document.getElementById("uid").focus();'>
    <form id="form1" runat="server">
        <center>
        <br ><br ><br >
    <table  border="0" cellspacing="2" cellpadding="2" style='BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 400px; BORDER-BOTTOM: 1px solid'>
        <tr>
            <td>&nbsp;</td>
            <td class="BIG" align="left">Login</td>       
        </tr>
       
        <tr><td>&nbsp;</td></tr>
        <% if (error_message != "") { %>
            <tr>
                <td>&nbsp;</td>
                <td align="left" class="norm" style='color:red;' colspan = "2" ><%=error_message %></td>           
            </tr>
        <% } %>
        <tr>
            <td>&nbsp;</td>
            <td class="norm" align="left">
                Brugernavn nr:
            </td>
           
            <td align="left">
                <input id="uid" name="uid" class="norm" >
            </td>
        </tr>
       
        <tr>
            <td>&nbsp;</td>
            <td class="norm" align="left">
                Adgangskode:
            </td>
           
            <td align="left">
                <input name="pass" type="password" class="norm" >
            </td>
        </tr>

        <tr align="left">
            <td>&nbsp;</td>
            <td class="norm">
                <input class="norm" type="submit" value="Login" >
            </td>
        </tr>
    </table>
    </center>
    </form>
</body>
</html>

===========
= og nu .cs filen
===========
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public class _Default : System.Web.UI.Page
{
    protected string error_message = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        NameValueCollection q = Request.QueryString;
        if (q["id"] != null) {
            int i = Convert.ToInt32(q["id"]);
            switch (i)
            {
                case 1:
                    error_message = "Du har været inaktiv for længe, og er blevet logget ud.";
                break;
        case 2:
        error_message = "Forkert brugernavn eller adgangskode!";
        break;
            }
        }

        if (Page.IsPostBack) {
            NameValueCollection col = Request.Form;

            string uid = col["uid"];
            string pass = col["pass"];

            MetUser theuser = new MetUser();
            if (theuser.FetchUser(uid, pass))
            {
                Session["theuser"] = theuser;
                Response.Redirect("trut.aspx");
            }
            else
            {
                Response.Redirect("Default.aspx?id=2");
            }
        }
    }
}
Avatar billede dr_chaos Nybegynder
28. april 2007 - 19:35 #4
Er den kode som ligger på andre maskiner fuldstændig identisk ?
Har du prøvet at rekompilerer hele projektet ?
Avatar billede erikjacobsen Ekspert
28. april 2007 - 19:42 #5
Har du en klasse i en anden .cs fil, der hedder _Default, så sker der noget sjovt i .NET 2.0 (tro mig ... *g*)  -  jeg ved ikke hvad der ville ske i 1.1, men måske og muligvis det du skriver, hvem ved...?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester