其中是在ASP.NET中单击按钮时运行的代码

其中是在ASP.NET中单击按钮时运行的代码,asp.net,.net,visual-studio-2010,button,Asp.net,.net,Visual Studio 2010,Button,我试图通过使用Visual Studio 2010分析默认网站项目来学习ASP.NET的基本方面 在Register.aspx页面中,有用于用户注册的字段和此按钮: <asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="Create User" ValidationGroup="RegisterUserValidationGroup"/> 我希望在数据库中插入一些用户数据。

我试图通过使用Visual Studio 2010分析默认网站项目来学习ASP.NET的基本方面

在Register.aspx页面中,有用于用户注册的字段和此按钮:

<asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext"
    Text="Create User" ValidationGroup="RegisterUserValidationGroup"/>

我希望在数据库中插入一些用户数据。我想知道,这个按钮就是这么做的吗?

一个aspx页面也会有一个“代码隐藏”文件,名称相同,但扩展名不同(点后的字母),这取决于它所用的语言。Visual basic文件的扩展名为.vb,而C#文件的扩展名为.cs

尝试查找Register.vb或Register.cs,看看这是否更有成效

如果您使用的是像VisualStudio这样的开发环境,您可能会发现,在解决方案资源管理器中,您可以单击展开aspx文件,并在下面查看其代码隐藏文件。如果您没有,您可能需要购买免费的快速版:


当您找到隐藏的代码时,请查找名为“MoveNext”的方法—这是单击按钮时将运行的代码,由asp:标记的CommandName属性指定。

您正在查找的按钮应位于
CreateUserWizardStep
控件中。我对该控件了解不多,但该控件可能会查找具有
CommandName=“MoveNext”
的子按钮,然后它会钩住其单击事件

尝试将
CommandName
更改为类似“test”的其他内容,它不应碰到
RegisterUser\u CreatedUser
事件上的断点


还要注意的是,您已经将一些事情复杂化了,您完全没有错,但是VS 2010 IDE附带的项目模板有一部分是错误的。让我试着一个接一个地帮助你:

  • 学习ASP.Net基础知识:为此,您应该使用Visual Studio 2010中提供的“ASP.Net空Web应用程序”项目模板。您已经从“ASP.NET Web应用程序”项目模板开始,该模板对您来说很复杂 你。重新开始“ASP.NET Web应用程序”对于任何人来说都是显而易见的选择,但它附带了一个预煮的锅炉板代码,用于ASP.NET成员身份验证及其相关控件,这是所有困惑的根本原因。要开始学习基础知识,请使用我上面建议的“ASP.NET空Web应用程序”项目模板,然后添加一个新的“Web表单”,然后添加各种基本的服务器Web控件,如按钮或文本框,开始学习事件处理和代码隐藏等概念

  • 你的另一个问题-

    “该按钮确实注册了一个用户,但我找不到这段代码 运行,更不用说代码与该按钮的关联方式了”

    这是因为您在
    Register.aspx
    页面上看到的按钮是 不是单个服务器web控件,而是复合控件的一部分。作为
    asp:CreateUserWizard
    复合控件一部分的各种控件(无论是按钮、标签还是文本框)的所有事件都由父复合控件
    asp:CreateUserWizard
    处理。您将无法在代码隐藏文件中找到所有代码,因为该文件存在于项目中引用的
    System.Web.dll

    由于复合控件上存在的所有控件事件都是由编写在复合控件代码中的公共函数处理的,因此必须准确区分用户单击了哪个控件(以采取适当的操作),从而导致当前页面发帖,而
    CommandName
    属性将显示该控件。父复合控件的公共函数中有一个switch case语句,它使用
    CommandName
    属性


  • 因此,从本质上讲,当您试图开始理解ASP.Net服务器web控件和事件处理的基础知识时,您实际上进入了理解ASP.Net成员身份和角色web服务器控件和提供程序的道路,这在最初可能比较难理解和掌握。希望这有助于您开始并进一步了解ASP.Net world。

    此按钮位于什么位置?类似gridview的东西?它可能会有一个OnCommand=“SomeMethodName”属性没有OnCommand属性,但它在代码背后有一个对方法的引用。我用更多的信息编辑了这个问题。谢谢。谢谢,我搜索了一个
    MoveNext
    方法,但什么也没找到。然而,我确实在代码背后找到了两种方法,
    PageLoad
    RegisterUser\u CreatedUser
    。当我放置一个断点并单击按钮时,后者被击中,但我希望看到类似在数据库中插入用户数据的代码,但是我发现,总结:
    FormsAuthentication.SetAuthCookie(…)
    Response.Redirect(continueUrl)
    。这对我来说仍然很困惑,我会继续挖掘。现在一切都变得更有意义了,谢谢。关于
    CreateUserWizardStep
    我测试过,是的,它似乎在寻找
    MoveNext
    命令。
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
        <asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="false" OnCreatedUser="RegisterUser_CreatedUser">
            <WizardSteps>
                <asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server">
                    <ContentTemplate>
                        <div class="accountInfo">
                            <p class="submitButton">
    
    protected void RegisterUser_CreatedUser(object sender, EventArgs e)
    {
        FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
    
        string continueUrl = RegisterUser.ContinueDestinationPageUrl;
        if (String.IsNullOrEmpty(continueUrl))
        {
            continueUrl = "~/";
        }
        Response.Redirect(continueUrl);
    }
    
    <connectionStrings>
        <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
    </connectionStrings>