Asp.net单击事件代码出现在aspx页面中,而不是后面的代码
本文关键字:代码 aspx 事件 单击 net Asp | 更新日期: 2023-09-27 18:08:02
当我点击一个按钮来定义它的点击事件时,它会带我到我自己的aspx页面的标签,而不是带我到/aspx.cs页面后面的代码。这只发生在主页上。另一页注册。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)
{
}
}
查看.aspx文件的头文件。应该有一个名为CodeBehind的属性,用于引用您的代码文件。如
CodeBehind="yourfile.aspx.cs"
如果此属性不存在,c#代码将被放置在aspx的脚本标签中。如果存在此属性,则引用cs文件和后面的代码。在创建文件时,可能没有勾选"将代码放在单独的文件中"(或类似的)复选框。
如果你想把代码放在一个单独的文件夹中,你可以用代码创建一个新的aspx.cs文件(最好从你的解决方案中的其他文件复制粘贴),并添加引用该文件的属性codebegin。
在你的。aspx页面的顶部-你会看到一行像这样的代码(或类似的东西):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs"
Inherits="yourapp.default"%>
CodeBehind
属性链接到。aspx (asp markup/designer)页面的。cs文件(c#代码文件)
Inhertis
属性链接到"namespace "。.CS文件的"部分"类
.CS文件应该看起来像这样:
...
using System.Data.SqlClient;
using System.Net;
namespace yourapp
{
public partial class Default : System.Web.UI.Page
{
...
如果你的ASPX文件中没有上述属性-添加它们
如果你没有一个命名空间指令在你的c#代码后面的文件-添加它(使用你给你的项目的名字当然(检查你的其他文件,它看起来是如何工作的))和封装命名空间下的一切(即在命名空间子句下的所有东西周围添加{})
如果它是一个HTML控件,点击事件将在aspx页面中通过双击它来定义。如果它是一个asp控件,点击事件将在代码页中通过双击它来定义。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="YourCodePage.aspx.cs"
Inherits="Default2" %>