当我点击一个按钮来定义它的click事件时,它会将我带到我自己的aspx页面的标签,而不是带我到/ aspx.cs页面后面的代码。这仅适用于主页。另一个页面signup.aspx工作正常,按预期工作。
在过去的几个月里,我和我一起参与了很多项目。由于我是初学者,我对此并不太了解。但是,我在VS 2010中创建此网站时,勾选了“将代码放在单独的文件中”复选框。
提前感谢您的帮助。
<%@ Page Language="C#" 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 id="Head1" runat="server">
<title>Employee Login</title>
<link href="css/Style.css" type="text/css" rel="Stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<div>
<table align="center" class="loginBox">
<tr>
<td>Username:</td>
<td><asp:TextBox ID="txtUsername" runat="server" CssClass="username"></asp:TextBox></td>
<asp:RequiredFieldValidator runat="server" ID="rqUser" ValidationGroup="loginValidation" ControlToValidate="txtUsername" ErrorMessage="Username"></asp:RequiredFieldValidator>
</tr>
<tr>
<td>Password:</td>
<td><asp:TextBox ID="txtPassword" runat="server" TextMode="Password" CssClass="password"></asp:TextBox></td>
<asp:RequiredFieldValidator runat="server" ID="rqPass" ValidationGroup="loginValidation" ControlToValidate="txtPassword" ErrorMessage="Password"></asp:RequiredFieldValidator>
</tr>
<tr>
<td align="center" colspan="2"><asp:Button ID="btnLogin" Width="60" runat="server"
Text="Login" CssClass="btnLogin" onclick="btnLogin_Click" /></td>
</tr>
<tr>
<td colspan="2"><span style="float:left;"><asp:HyperLink ID="HyperLink1" runat="server" Text="Forgot Password" NavigateUrl="~/forgotpassword.aspx" CssClass="regular_text"></asp:HyperLink></span>
<span style="float:right;"><asp:HyperLink ID="HyperLink2" runat="server" Text="New User" NavigateUrl="~/signup.aspx" CssClass="regular_text"></asp:HyperLink></span>
</td>
</tr>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="You must enter following" DisplayMode="BulletList" EnableClientScript="true" ForeColor="White" />
</table>
</div>
</form>
</body>
</html>
Code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
答案 0 :(得分:2)
查看.aspx文件的标题。应该有一个名为CodeBehind的属性,它引用了您的代码文件。是什么
CodeBehind="yourfile.aspx.cs"
如果此属性不存在,则将C#代码放在aspx中的脚本标记内。如果此属性存在,则引用带有后面代码的cs文件。也许,当您创建文件时,您没有勾选复选框&#34;将代码放在单独的文件中&#34; (或类似的)。
如果要将代码放在单独的文件夹中,可以使用代码创建新的aspx.cs文件(从解决方案中的其他文件中更好地复制和粘贴),并添加引用该文件的属性CodeBegind。 / p>
答案 1 :(得分:1)
如果是HTML控件,则双击它将在aspx页面中定义click事件。如果它是一个asp控件,点击事件将通过双击在代码页中定义。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="YourCodePage.aspx.cs"
Inherits="Default2" %>
答案 2 :(得分:1)
在.aspx页面的顶部 - 您会看到一行代码(或类似内容):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs"
Inherits="yourapp.default"%>
CodeBehind
属性链接到.aspx(asp标记/设计器)页面的.CS文件(C#代码文件)
Inhertis
属性链接到.CS文件的“namespace.partial”类
.CS文件应该如下所示:
...
using System.Data.SqlClient;
using System.Net;
namespace yourapp
{
public partial class Default : System.Web.UI.Page
{
...
如果您的ASPX文件中没有所述属性 - 添加它们
如果你的C#代码隐藏文件中没有命名空间指令 - 添加它 (当然使用你给你的项目的名称(检查你的其他文件看起来如何))并将所有内容封装在命名空间下(即在命名空间子句下的每个附近添加{})