在C#中检索表单发布数据时出现分析器错误

时间:2017-03-03 14:49:01

标签: c# html asp.net forms

尝试将已发布的数据从HTML表单检索到C#页面。

但是我收到了这个错误:

  

分析器错误

     

描述:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。

     

分析器错误消息:' Ass2.CarPage'这里不允许,因为它没有扩展类&System; Web.UI.Page'。

     

来源错误:

     

第1行:<%@ Page Language =" C#" AutoEventWireup ="真"代码隐藏=" CarPage.aspx.cs"继承=" Ass2.CarPage"%GT;

     

第2行:

     

第3行:

HTML代码:

<!--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#代码:

<%@ 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代码:

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)
        {

        }
    }
}

1 个答案:

答案 0 :(得分:1)

该错误表示您的班级Ass2.CarPage未继承自System.Web.UI.Page。它找到的类可能是设计器文件中的类,它只是一个部分类定义,所以没有在那里声明继承。

文件背后的实际代码具有错误的命名空间和类,因此它没有被拾取。通过将其从WebApplication2.WebForm更改为Ass2.CarPage,部分类现在指的是同一时间,从而得到&#34;合并&#34;,并且因为您的代码继承自正确的类,所有的工作原理。

另外,您应该从ASPX页面中获取内联C#代码,并将其放在代码的Page_Load方法中。将C#与ASPX页面混合起来是愚蠢的,这就是后面的代码所针对的内容。

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)
        {
            if (Request.Form["Car"] == "Volvo") 
            {
                Response.Redirect("VolvoHomepage.html");
            }

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

此外,在访问表单值之前,您应该确保表单值存在。但是我会把它作为锻炼给你。