Asp.net点击事件代码出现在aspx页面而不是代码背后

时间:2014-06-11 10:54:11

标签: c# asp.net visual-studio-2010 code-behind

当我点击一个按钮来定义它的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)
        {

        }
    }

3 个答案:

答案 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#代码隐藏文件中没有命名空间指令 - 添加它 (当然使用你给你的项目的名称(检查你的其他文件看起来如何))并将所有内容封装在命名空间下(即在命名空间子句下的每个附近添加{})