簡體   English   中英

ASP.Net CreateUserWizard中的當前上下文中不存在控件

[英]Controls does not exist in current context in ASP.Net CreateUserWizard

我正在使用ASP.NET Web應用程序在Microsoft Visual Studio中使用C#中的代碼處理項目。 我在步驟1中添加了CreateUserWizard並自定義了表單。從事件處理程序中,我將CreatedUser處理程序放入代碼隱藏中以更新數據庫表。 我想從表單中提取處理程序的數據值,但是由於某些原因,隱藏代碼文件看不到它們。 救命!

主頁

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PageControls" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="RightBox" runat="server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="SiteControl1" runat="server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="SiteControl2" runat="server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="SiteControl3" runat="server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="CPMain" runat="server">
    <center>
        <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
CreateUserButtonText="Submit"
            RequireEmail="False" OnCreatedUser="CreateUserWizard1_CreatedUser">
            <WizardSteps>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
                    <ContentTemplate>
                        <table border="0" style="font-size: 100%">
                            <tr>
                                <td align="center" colspan="2" style="font-weight: 
bold; color: white; background-color: #5d7b9d">
                                    Register with Acme!
                                </td>
                            </tr>
                            <tr>
                                <td align="right">
                                    <asp:Label ID="Label1" runat="server" 
AssociatedControlID="UserName">
                        First Name:</asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="FName" runat="server">
</asp:TextBox>
                                    <asp:RequiredFieldValidator 
ID="RequiredFieldValidator1" runat="server" ControlToValidate="FirstName"
                                        ErrorMessage="First Name is required." 
ToolTip="First Name is required." ValidationGroup="CreateUserWizard1">*
</asp:RequiredFieldValidator>
                                </td>
                                <tr>
                                    <td align="right">
                                        <asp:Label ID="Label2" runat="server">
                        Last Name:</asp:Label>
                                    </td>
                                    <td>
                                        <asp:TextBox ID="LName" runat="server">
</asp:TextBox>
                                        <asp:RequiredFieldValidator 
ID="RequiredFieldValidator2" runat="server" ControlToValidate="LastName"
                                            ErrorMessage="Last Name is required." 
ToolTip="Last Name is required." ValidationGroup="CreateUserWizard1">*
</asp:RequiredFieldValidator>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="right">
                                        <asp:Label ID="UserNameLabel" runat="server" 
AssociatedControlID="UserName">
                        User Name:</asp:Label>
                                    </td>
                                    <td>
                                        <asp:TextBox ID="UserName" runat="server">
</asp:TextBox>
                                        <asp:RequiredFieldValidator 
ID="UserNameRequired" runat="server" ControlToValidate="UserName"
                                            ErrorMessage="User Name is required." 
ToolTip="User Name is required." ValidationGroup="CreateUserWizard1">*
</asp:RequiredFieldValidator>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="right">
                                        <asp:Label ID="PasswordLabel" runat="server" 
AssociatedControlID="Password">
                        Password:</asp:Label>
                                    </td>
                                    <td>
                                        <asp:TextBox ID="Password" runat="server" 
TextMode="Password"></asp:TextBox>
                                        <asp:RequiredFieldValidator 
ID="PasswordRequired" runat="server" ControlToValidate="Password"
                                            ErrorMessage="Password is required." 
ToolTip="Password is required." ValidationGroup="CreateUserWizard1">*
</asp:RequiredFieldValidator>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="right">
                                        <asp:Label ID="ConfirmPasswordLabel" 
runat="server" AssociatedControlID="ConfirmPassword">
                        Confirm Password:</asp:Label>
                                    </td>
                                    <td>
                                        <asp:TextBox ID="ConfirmPassword" 
runat="server" TextMode="Password"></asp:TextBox>
                                        <asp:RequiredFieldValidator 
ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword"
                                            ErrorMessage="Confirm Password is 
required." ToolTip="Confirm Password is required."
                                            ValidationGroup="CreateUserWizard1">*
</asp:RequiredFieldValidator>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center" colspan="2">
                                        <asp:CompareValidator ID="PasswordCompare" 
runat="server" ControlToCompare="Password"
                                            ControlToValidate="ConfirmPassword" 
Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match."
                                            ValidationGroup="CreateUserWizard1">
</asp:CompareValidator>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center" colspan="2" style="color: red">
                                        <asp:Literal ID="ErrorMessage" runat="server" 
EnableViewState="False"></asp:Literal>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="right">
                                        <asp:Label ID="Label3" runat="server" 
AssociatedControlID="UserName">
                        Role:</asp:Label>
                                    </td>
                                    <td>
                                        <asp:DropDownList ID="RoleSelector" 
runat="server">
                                            <asp:ListItem 
Value="Visitor">Visitor</asp:ListItem>
                                            <asp:ListItem 
Value="Employee">Employee</asp:ListItem>
                                            <asp:ListItem Value="PM">Project 
Manager</asp:ListItem>
                                            <asp:ListItem Value="DM">Department 
Manager</asp:ListItem>
                                            <asp:ListItem Value="Director">IT 
Director</asp:ListItem>
                                        </asp:DropDownList>
                                    </td>
                                </tr>
                        </table>
                    </ContentTemplate>
                </asp:CreateUserWizardStep>
                <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
                    <ContentTemplate>
                    </ContentTemplate>
                </asp:CompleteWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>
    </center>
</asp:Content>

代碼背后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Principal;

namespace Acme
{
    public partial class Register : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
        {
            RolesManager.InsertEmployee(FName.Text, LName.Text, RoleSelector.Value, 
User.Identity);
        }
    }
}

我在編譯時收到這些錯誤:

Error   1   The name 'FName' does not exist in the current context  C:\MV_Training\Jan2013\C#Projects\AcmePresentation\AcmePresentation\Register.aspx.cs    20  41  AcmePresentation
Error   2   The name 'LName' does not exist in the current context  C:\MV_Training\Jan2013\C#Projects\AcmePresentation\AcmePresentation\Register.aspx.cs    20  53  AcmePresentation
Error   3   The name 'RoleSelector' does not exist in the current context   C:\MV_Training\Jan2013\C#Projects\AcmePresentation\AcmePresentation\Register.aspx.cs    20  65  AcmePresentation

這是從瀏覽器:

編譯錯誤描述:在編譯為滿足此請求所需的資源期間發生錯誤。 請查看以下特定的錯誤詳細信息,並適當地修改您的源代碼。

編譯器錯誤消息:CS1061:'ASP.register_aspx'不包含'CreateUserWizard1_CreatedUser'的定義,並且找不到擴展方法'CreateUserWizard1_CreatedUser'接受類型為'ASP.register_aspx'的第一個參數(您是否缺少using指令或組裝參考?)

源錯誤:

Line 16: <asp:Content ID="Content7" ContentPlaceHolderID="CPMain" runat="server">
Line 17:     <center>
Line 18:         <asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
Line 19:             CreateUserButtonText="Submit" RequireEmail="False" 
Line 20:             oncreateduser="CreateUserWizard1_CreatedUser">

源文件:c:\\ MV_Training \\ Jan2013 \\ C#Projects \\ AcmePresentation \\ AcmePresentation \\ Register.aspx行:18

謝謝,比爾

您想顯式轉換類似這樣的控件-

public void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
   var fNameTextBox = (TextBox)CreateUserWizardStep1
          .ContentTemplateContainer.FindControl("FName");
   var lNameTextBox = (TextBox)CreateUserWizardStep1
          .ContentTemplateContainer.FindControl("LName");
   var usernameTextBox = (TextBox)CreateUserWizardStep1
          .ContentTemplateContainer.FindControl("UserName");

   MembershipUser user = Membership.GetUser(usernameTextBox.Text);
   Guid userId = (Guid)user.ProviderUserKey;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM