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

Asp.net单击事件代码出现在aspx页面中,而不是后面的代码

查看.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" %>