2017-03-03 1 views
0

Versucht, gebuchte Daten aus HTML-Formular in C# -Seite abrufen.Parser Fehler beim Abrufen von Formular gebucht Daten in C#

Allerdings erhalte ich diesen Fehler:

Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: 'Ass2.CarPage' is not allowed here because it does not extend class 'System.Web.UI.Page'.

Source Error:

Line 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CarPage.aspx.cs" Inherits="Ass2.CarPage"%>

Line 2:

Line 3:

HTML-Code:

<!--Car Search Form--> 
     <div id="Search_Form"> 
      <form name="Car Search" action="CarPage.aspx" method="post"> 
       <h1 align="center">Search For A Car Now: </h1> 
       <h2 align="center"> 
        <select name="Car"> 
         <option value="Volvo">Volvo</option> 
         <option value="Ford">Ford</option> 
         <option value="Mercedes">Mercedes</option> 
         <option value="Audi">Audi</option> 
         <option value="Vauxhall">Vauxhall</option> 
        </select> 
        <h1 align="center"> 
         <input type="Submit" value="Submit"> 
        </h1> 
      </form> 
     </div> 

C# Code:

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

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 

<%  
if (Request.Form["Car"] == "Volvo") 
{ 
    Response.Redirect("VolvoHomepage.html"); 
} 

if (Request.Form["Car"] == "Ford") 
{ 
    Response.Redirect("FordHomepage.html"); 
} 
if (Request.Form["Car"] == "Mercedes") 
{ 
    Response.Redirect("MercedesHomepage.html"); 
} 
if (Request.Form["Car"] == "Audi") 
{ 
    Response.Redirect("AudiHomepage.html"); 
} 
if (Request.Form["Car"] == "Vauxhall") 
{ 
Response.Redirect("VauxhallHomepage.html"); 
} 
%> 

</body> 
</html> 

aspx.cs Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication1 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 
+0

Beginnen Sie mit dem Schreiben von 'C#' und 'VB' Code auf der gleichen Seite. Entfernen Sie das "Ende If". – VDWWD

+0

@VDWWD - versucht dies, aber es stoppt immer noch nicht den Fehler Mesasge –

+0

Sie haben uns den Code hinter der Seite nicht gezeigt. – mason

Antwort

1

Der Fehler zeigt an, dass Sie eine Klasse Ass2.CarPage haben, die nicht von System.Web.UI.Page erbt. Die Klasse, die gefunden wurde, war wahrscheinlich die Klasse in der Designer-Datei, die nur eine partielle Klassendefinition ist und daher die Vererbung nicht deklariert hat.

Der eigentliche Code hinter der Datei hatte den falschen Namespace und die falsche Klasse, daher wurde er nicht aufgenommen. Durch die Änderung von WebApplication2.WebForm zu Ass2.CarPage beziehen sich die partiellen Klassen jetzt auf die gleiche Zeit und werden somit "zusammengeführt", und da Ihr Code hinter der korrekten Klasse erbt, funktioniert alles.

Auf einer Randnotiz sollten Sie den Inline-C# -Code aus Ihrer ASPX-Seite nehmen und ihn in die Page_Load Methode Ihres Codes hinterlegen. Es ist albern, C# in die ASPX-Seite zu mischen, wenn das der Code dahinter ist.

Auch sollten Sie sicherstellen, dass die Formularwerte vor dem Zugriff vorhanden sind. Aber ich überlasse das als Übung für dich.

Verwandte Themen