webForumDet fria alternativet

View State-problem

3 svar · 198 visningar · startad av Ekström

EkströmMedlem sedan feb. 20022 594 inlägg
#1
<%@ Page Language="C#" debug="True" CompilerOptions='/R:"C:\Program\Microsoft.NET\Odbc.Net\Microsoft.Data.Odbc.Dll"' %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Microsoft.Data.Odbc" %>
<script runat="server">

    void Page_Load(Object obj, EventArgs e){

    if (Session["adminIsLoggedIn"] != "True" && Session["superAdminIsLoggedIn"] != "True"){
    Response.Redirect("default.aspx");
    }

	if(IsPostBack){
	    string strPersonalCodeNumber = Request.Form["strPersonalCodeNumberPart1"].ToString() +"-"+ Request.Form["strPersonalCodeNumberPart2"].ToString();
	string strSQL = "INSERT INTO tblStudentLoginInfo (strPersonalCodeNumber, strStudentUID, strSchool) VALUES ("+ strPersonalCodeNumber +", "+ Request.Form["strUID"].ToString() +", "+ Session["strSchool"].ToString() +")";
	Response.Write(strSQL);
	}

    }

</script>
    <% Server.Execute("../incTop.aspx"); %>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkLength() {
if(document.studentLogin.strPersonalCodeNumberPart1.value.length >= 6){
eval("document.studentLogin.strPersonalCodeNumberPart2.focus();")
}
}
-->
</SCRIPT>
    <form style="margin: 0px;" id="studentLogin" runat="server">
<b>Namn:</b><br><asp:TextBox runat="server" id="strUID"/>
<br><b>Personnnummer:</b><br><asp:TextBox runat="server" columns="6" id="strPersonalCodeNumberPart1" maxlength="6" onKeyUp="return checkLength();"/> - <asp:TextBox runat="server" columns="4" maxlength="4" id="strPersonalCodeNumberPart2"/><br>
    <asp:Button text="Lägg till!" style="width: 100px;" runat="server"/>
    </form>
    <% Server.Execute("../incBottom.aspx"); %>

Felmeddelande: The View State is invalid for this page and might be corrupted

Vad är fel?

Påpeka hemskt gärna fel i koden. Hur jag kan bygga det bättre osv. Finns garanterat massor med dålig kod. :)

Vill lära mig koda .NET bättre så allt påpekande uppskattas.

renholmMedlem sedan apr. 20012 266 inlägg
#2

Vet inte varför ditt "The View State is invalid for this page and might be corrupted" uppstår, men för mig var det så engång när jag hade ändrat sidan och sedan gjorde en postback med de gammla värderna.

Om man ska anmärka på koden så såg jag att du använde Server.Execute, vilket man kan förbättra med att använda en UserControl till.

http://samples.gotdotnet.com/quickstart/aspplus/doc/webpagelets.aspx

Sedan behöver du inte använda Request.Form för att hämta värden ur textboxarna, går lika bra att använda strPersonalCodeNumberPart1.Text och strPersonalCodeNumberPart2.Text

EkströmMedlem sedan feb. 20022 594 inlägg
#3

Tack renholm! :)

Någon postback med de gamla variablerna har jag inte gjort. Sidan har aldrig funkat efter postback, och koden inom

if(IsPostBack){

och

}

är riktig.

Inget mer i koden jag skulle kunna förbättra i övrigt? Vore kalasschysst om ni kunde dela med er av era kunskaper.

EkströmMedlem sedan feb. 20022 594 inlägg
#4

Det löste sig. Varför vet jag inte, men jag gjorde som du sa... och inget hände. Startade om IIS och inget hände. Sen efter ett tag så funkade det perfekt. :)

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)