尝试将已发布的数据从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)
{
}
}
}
答案 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");
}
}
}
}
此外,在访问表单值之前,您应该确保表单值存在。但是我会把它作为锻炼给你。