2016-04-20 6 views
1

ich auf diese Aufgabe Frage helfen müssen:ASP.NET Etiketten werden Anzeigen nicht den erwarteten Wert

Wenn Benutzer die Website besucht, es soll die Begrüßung „Guten Morgen“ angezeigt werden, wenn die Zeit der Benutzer den Besuch ist am Morgen. Wenn es Nachmittag ist, sollte "Guten Tag" angezeigt werden. Wenn es nachts ist, sollte "Guten Abend" angezeigt werden.

Ich bin ein wenig verwirrt, warum die Etiketten in dieser ASP.NET-Website die Grüße überhaupt nicht anzeigen.

Mein Code-Schnipsel:

<%@ Page Language="VB" AutoEventWireup="false" 

CodeFile="Default.aspx.vb" Inherits="Labs_7_Default" %> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body onload=""> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="lblGreeting" runat="server"/> 
    </div> 
     </form> 
</body> 
</html> 

Dies ist der Code hinter:

Partial Class Labs_7_Default 
Inherits System.Web.UI.Page 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 

    If DateTime.Now.Hour >= 6 And DateTime.Now.Hour < 12 Then 
     lblGreeting.Text = "Good morning" 
    ElseIf DateTime.Now.Hour >= 12 And DateTime.Now.Hour < 18 Then 
     lblGreeting.Text = "Good afternoon" 
    Else 
     lblGreeting.Text = "Good evening" 
    End If 
End Sub 

Ich habe auch andere Variationen dieser Code versucht, aber die Etiketten nie im Browser angezeigt.

+0

Versuchen Sie die onload = "" Funktion zu entfernen. benutze einfach leer tag – Red

+0

Ist das "code snippet" das ganze markup das du hast? Einige Tags fehlen (HTML, End-Body-Tag). – ConnorsFan

+2

Betrachten Sie 'AutoEventWireup': https://support.microsoft.com/en-us/kb/324151. Ich glaube, das ist dein Problem. –

Antwort

2

Ein Teil der ASPX-Datei fehlt möglicherweise. Die minimale Markup sollte wie folgt aussehen:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %> 
<html> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="lblGreeting" runat="server"/> 
    </div> 
    </form> 
</body> 
</html> 

WebForm1 und WebApplication1 darf verschiedene Namen in Ihrer Anwendung.

UPDATE

Die wirkliche Antwort wurde von Tim Medora gegeben. Ich vermisste die Tatsache, dass Page_Load in Ihrem Code-Behind nicht Handles Me.Load hatte:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 

Wenn die Handles Klausel gibt, kann AutoEventWireup falsch sein. Ansonsten muss es wahr sein.

+0

Entschuldigung. Der vollständige Code wird im bearbeiteten Post angezeigt. –

Verwandte Themen