ASP Textfelder existieren nicht im Kontext der Codebehind-Datei
Bin ich zu schreiben versucht, eine grundlegende ASP.NET form (mit Visual Studio 2010) zu unterbreiten zahlen in einer Datenbank. Denn dies ist eine sehr frühe Versuch für mich zu nutzen ASP.NET ich schrieb es sehr einfach auf den ersten, und jetzt versuche ich, um die restlichen Funktionen. Ursprünglich war alles inline-code. Jetzt versuche ich es wechseln die Verwendung einer codebehind-Seite, aber ich kann es nicht beheben, die Namen meiner Textfelder aus, die in meiner codebehind-Datei. Ich baute diese Seiten während einige tutorials, und haben mehrere andere Quellen, um zu versuchen, dieses Problem zu beheben, aber alles, was ich bisher gesehen habe, scheint zu zeigen, dass ich es alles für eine codebehind, doch es funktioniert nicht. VS gibt Fehler beim kompilieren unter Angabe der textbox Namen nicht in den aktuellen Kontext. Wenn ich entfernen Sie alle Referenzen auf die Textfelder, die Seite funktioniert und mein button-event feuert. Für grins ich Verweise Hinzugefügt, um die Textfelder, die in der codebehind, wie so protected TextBox XcoordTextbox;
(wie ich glaube, Sie würden in ASP.NET 1.0), aber dann bekomme ich eine runtime error CS0102: The type 'ManualEntry.default_aspx' already contains a definition for 'XcoordTextbox'
Nachstehend sind die wichtigsten Teile von meinem code. Können Sie erklären, warum dies nicht funktioniert?
ASPX-Datei
<%@ Page Language="C#" CodeFile="default.aspx.cs" Inherits="ManualEntry.default_aspx" AutoEventWireup="true" %>
<!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 runat="server"></head>
<body>
<form id="HtmlForm" runat="server">
<div>
X Coord
<asp:TextBox ID="XcoordTextbox" runat="server"></asp:TextBox>
<br />
Y Coord
<asp:TextBox ID="YcoordTextbox" runat="server"></asp:TextBox>
<asp:Button ID="SubmitButton" runat="server" onclick="SubmitButton_Click" Text="Submit" />
</div>
</form>
</body>
</html>
Codebehind-Datei
using System;
using System.Web.UI;
namespace ManualEntry
{
public partial class default_aspx : Page
{
protected void SubmitButton_Click(object sender, EventArgs e)
{
var Xcoord = XcoordTextbox.Text;
var Ycoord = YcoordTextbox.Text;
//More Code Here
}
}
}
this.FindControl("XcoordTextbox") as TextBox
finden Sie Ihre Kontrollen.Haben Sie versuchen, die Reinigung Ihres Projekts? (Rechtsklick auf das Projekt im Projektmappen-Explorer und wählen Sie Clean)
Ich habe versucht, es zu Reinigen, aber es scheint keinen Einfluss auf irgendetwas.
was ist der cs-Datei name der default_aspx Klasse? ist es Standard.aspx.cs?
Ja. Die Dateinamen sind Standard.aspx für die Seite und Standard.aspx.cs für die codebehind. Der name der Klasse sollte irrelevant sein, solange es passt den
Inherits
Eigenschaft auf der ASPX-Seite, richtig?
InformationsquelleAutor techturtle | 2012-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
gehen
Microsfot.NET[.NET version]\Temporary ASP.NET Files.
und löschen temparary-Dateien für Ihre web-site.e.g für .net 4.0
wenn Sie CodeFile Richtlinie dann kompilierten Dateien geht Vorübergehende ASP.NET Dateien
Und auch löschen, bin und Objekt-Ordner von Ihrer Lösung und Neuerstellung der web-Anwendung.
BEARBEITEN
Ihrem Standard.aspx.designer.cs sollte wie folgt Aussehen, nicht Steuerelemente hinzufügen, um diese Seite manuell.
In Bezug auf dein edit... ich bin nicht zu haben scheinen ein
default.aspx.designer.cs
Seite. Das klingt wie etwas, das könnte die Ursache Verhalten wie diese, aber ich weiß nicht, wie Sie zu einem Projekt Hinzugefügt oder warum ich keine haben. EDIT: ich fand diesen link aspx.designer.cs wie funktioniert es?, die enthält Informationen über die Regeneration des Designers.cs-Datei. Es scheint zu funktionieren jetzt.InformationsquelleAutor Damith
Habe ich dieses problem von Zeit zu Zeit.
Normalerweise mache ich die followwing:
default_aspx
Klasse.Könnte es auch sein, der Namenskonvention, versuchen Sie
default_aspx
zudefault_aspx1
. Ich habe gesehendefault_aspx
verwendet .NET.Auch in meinem .NET 4.0 standardmäßig
CodeBehind
stattCodeFile
. Dies scheint zu sein, die bestimmungsgemäße Verwendung Fall für alle, aber .NET 1.1. Siehe auch CodeFile vs CodeBehindWenn alle Stricke reißen, versuchen Sie, erstellen Sie die Seite wieder von vorne an.
InformationsquelleAutor Trisped
Ihre
CodeFile="default.aspx.cs"
Aussage ist falschInformationsquelleAutor jmakki
Es sollte so etwas wie
Inherits
Eigenschaft enthält die namespace-qualifier.NEIN, in Ihrer aspx-Sie erwähnen
CodeFile="default.aspx.cs"
und in cspublic partial class default_aspx
. Sie sollten identisch sein und nicht anders. AuchInherits
namespace nicht erforderlich.Die
CodeFile
Eintrag gibt die Dateiname während derpublic partial class
ist die Klassenname. Sie sind nicht das gleiche. Ich hatte vorher verschiedene Namen vor und es hat nicht funktioniert. Nur für den Fall, es war die Namen, ich habe diese bestimmte Namen von einem der tutorials habe ich mir angesehen und es schien zu funktionieren OK für Sie. Auch dieInherits
Eigenschaft erfordert die namespace-Deklaration, weil VS identifiziert es als einen Fehler, wenn Sie nicht ("cannot resolve symbol").InformationsquelleAutor Rahul
verwenden
CodeFile=
und es funktionierte nicht. Dies versucht man aber dasselbe Ergebnis.InformationsquelleAutor user1396468
versuchen Sie Ihr erbt zu
Inherits="ManualEntry.default"
stattInherits="ManualEntry.default_aspx"
InformationsquelleAutor Mark
Gehen Sie Zu Ihrem .aspx-Datei und Re-überprüfen Sie Ihre Kopf-wie <%@............%>
sollte ein link auf Ihre code-behind-Datei der name .cs-Datei wie......
Kasse diesem 1....:)
InformationsquelleAutor Rajat Singh
Ihre codefile-Tags auf Ihrer asp-muss der gleiche sein, der den Namen der Klasse. Versuchen Sie so etwas wie echte Klasse Namen.
HelloWord.aspx
oder so etwas.public partial class MyPage : Page
und die Seite enthältInherits="ManualEntry.MyPage
undCodeBehind="MyPage.aspx.cs"
. Es gibt noch die genau gleichen Fehler.InformationsquelleAutor Jaime Yule