2017-12-04 3 views
0

Ich habe eine Eigenschaft x in meiner Code-Behind-Datei in einem Webanwendungsprojekt. Es gibt mir Zeit Fehler kompilieren, während es keine Fehler in Website-Projekt nicht gebenZugriff auf Eigenschaften des Code-Behind von Aspx-Seite im Webanwendungsprojekt

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" 
Inherits="test.WebForm1" %> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
<div> 
<%= x2 %> 
<%# x2 %> 
</div> 
</form> 
</body> 
</html> 

Codebehind-Datei:

using System; 
namespace test 
{public partial class WebForm1 : System.Web.UI.Page 
{ 
    public int x2 = 2; 
    protected void Page_Load(object sender, EventArgs e) 
    {   
    }  
    } 
} 

Es funktioniert gut, wenn ich die gleiche Technik in meiner Website-Projekt verwenden Bitte helfen Danke

Antwort

0

Überprüfen Sie, ob sich hinter Ihrem Code weitere Fehler befinden WebForm1.aspx.cs. wie fehlende Referenz oder andere Kompilierungsfehler.

+0

ja es gibt ein Problem in Referenzen – shomaail

0

Das funktioniert für mich. Sind Sie sicher, dass in ViewState ein Wert vorhanden ist? Fügen Sie beim Laden der Formulare einen Wert zum Testen hinzu.

ViewState["FormMode"] = "ViewApplicant"; 
lblMessage.DataBind(); 

Achten Sie auch darauf, dass auf dem Etikett Text angezeigt wird. Es könnte zeigen, aber ist leer.

<asp:Label ID="lblMessage" runat="server" 
    Text="some text" 
    Visible='<%# FormMode == "View" || FormMode == "ViewApplicant" %>'> 
</asp:Label> 
+0

Das Problem ist nicht mit dem Viewstate. Jede andere Eigenschaft ist ebenfalls nicht zugänglich. Es gibt Kompilierzeit Fehler. Der Name 'FormMode' existiert nicht im aktuellen Kontext – shomaail

0

Ihr Code ist vollkommen in Ordnung. Beim Zugriff auf die Variablen/Eigenschaft intitilay kann die rote Unterstreichung unter dem Ausdruck erscheinen, der den Kompilierungsfehler angibt, aber beim Erstellen der Lösung sollte kein Fehler auftreten.

0

Ihr ursprünglicher Post hat sich geändert, also hier ist eine neue Antwort.

Versuchen Sie, den Namespace aus dem nachfolgenden Code zu entfernen, und ändern Sie "erbt" auf der Seite in Inherits="WebForm1".

Seite Richtlinie:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" 
    Inherits="WebForm1" %> 

Code hinter:

using System; 

public partial class WebForm1 : System.Web.UI.Page 
{ 
    public int x2 = 2; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    }  
} 

'Inherits' muss der Teilklassennamen übereinstimmen.

Verwandte Themen