按钮OnClick事件在.aspx而不是.cs文件中

时间:2013-07-13 08:57:54

标签: c# asp.net

我正在创建一个小型的asp.net应用程序,我面临的问题可能非常简单。

在我的主页上,我有一个“登录”按钮。我已将按钮放在表单上,​​双击它,OnClick事件就像我期待的那样放在.cs文件中。

protected void btnLogin_Click(object sender, EventArgs e)
{
    var u = new UserDto
        {
            Password = txtPassword.Text,
            Username = txtUsername.Text,
            validated = false
        };

    var us = new UserService().ValidateUser(u);
    if (us.validated)
    {
      // Etc etc
    }
}

我现在已经重定向到另一个页面,该页面有一些gridviews和objectdatasources。然后我在该表单中添加了一个新按钮,就像我在登录表单上所做的那样:

<asp:Button ID="btnCreateProject" runat="server" Text="Create New Project" />

但是现在,当我双击设计器中的按钮时,要创建一个OnClick事件,就会在aspx文件中创建OnClick事件!

<script runat="server">

    protected void btnCreateProject_Click(object sender, EventArgs e)
    {

    }
</script>

首先,为什么会发生这种情况?其次,如何将其放入我的.cs文件?

4 个答案:

答案 0 :(得分:1)

当您点击“添加新项目”并选择“网页表单”将页面添加到项目中时,您应该会在右侧看到一个复选框,上面写着“将代码放在单独的文件中”。听起来第二页没有检查过,这就是为什么它试图将代码嵌入网页本身。

答案 1 :(得分:0)

只需将方法复制到.cs文件中,但不应使用script标记,这样就可以了。

另外,请确保OnClick文件中的按钮上有.aspx个事件:
<asp:Button ID="btnCreateProject" runat="server" Text="Create New Project" OnClick="btnCreateProject_Click" />

答案 2 :(得分:0)

在项目中添加新页面时,请选中“请在单独文件中编码”复选框。有关详细信息,请查看以下屏幕截图。

enter image description here

答案 3 :(得分:0)

值得一提的是也将此添加到.aspx页面中     AutoEventWireup="true" CodeFile="PageName.aspx.cs" Inherits="PageName"

将OnClick事件带到您的.cs页面。