我想在ASP.NET Web表单项目中使注册和登录链接功能正常 [英] I want to make registration and login link functional in ASP.NET web form project

查看:130
本文介绍了我想在ASP.NET Web表单项目中使注册和登录链接功能正常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

My task is to create .ASCX control for registration and login and then call this in site.master. And at the same time, want these forms to be appeared as modal pop up. When i click on login then login pop up should appear and the same for registration.If i put <uc:Login ID="ucLogin" runat="server" /> code first then Login works and registration does not and the vice-versa. I think the problem is here:







<uc:Login ID="ucLogin" runat="server" /> 
<uc1:Registration ID="Registration" runat="server"  />







I do not know whether it is good to put <uc1:Registration ID="Registration" runat="server"/> under  <asp:LoginView runat="server" ViewStateMode="Disabled"> The whole site.Master page looks like this:





我尝试过:





What I have tried:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>

    <%@ Register Src = "~/Controls/Login.ascx" TagName = "Login" TagPrefix = "uc" %>
    <%@ Register Src="~/Controls/Registration.ascx" TagPrefix="uc1" TagName="Registration" %>

    <!DOCTYPE html>

    <html lang="en">
    <head runat="server">

        <asp:PlaceHolder runat="server">

        </asp:PlaceHolder>

    </head>
    <body>
        <form runat="server">
            <asp:ScriptManager runat="server">

            </asp:ScriptManager>

                        <asp:LoginView runat="server" ViewStateMode="Disabled">
                            <AnonymousTemplate>
                                <ul class="nav navbar-nav navbar-right">

                                    <li>  <uc:Login ID="ucLogin" runat="server" />     </li>
                                    <li> <uc1:Registration ID="Registration" runat="server"  /></li>
                                </ul>

                            </AnonymousTemplate>
                          </asp:LoginView>  

                    </div>
                </div>
            </div>
            <div class="container body-content">
                <asp:ContentPlaceHolder ID="MainContent" runat="server">
                </asp:ContentPlaceHolder>
                <hr />

            </div>
        </form>
    </body>
    </html>










And the Login.ascx is:







<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Login.ascx.cs" Inherits="Login" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:LinkButton ID="lnkLogin" runat="server" Text="Login"></asp:LinkButton>
<asp:Panel ID="pnlLogin" runat="server" CssClass="modalPopup" Style="display: none">


    <div class="form-group">
        <asp:Label runat="server" AssociatedControlID="Email" CssClass="col-md-3 control-label">User name</asp:Label>
        <div class="col-md-9">
            <asp:TextBox runat="server" ID="Email" CssClass="form-control" />
            <asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
                CssClass="text-danger" ErrorMessage="The user name field is required." />
        </div>
    </div>
    <div class="form-group">
        <asp:Label runat="server" AssociatedControlID="Password" CssClass="col-md-3 control-label">Password</asp:Label>
        <div class="col-md-9">
            <asp:TextBox runat="server" ID="Password" TextMode="Password" CssClass="form-control" />
            <asp:RequiredFieldValidator runat="server" ControlToValidate="Password" />
        </div>
    </div>

    <div class="form-group">

        <asp:Button runat="server" OnClick="LogIn" Text="Log in" CssClass="btn btn-default" />
    </div>

</asp:Panel>
<cc1:ModalPopupExtender ID="popup" runat="server" DropShadow="false"
    TargetControlID="lnkLogin" PopupControlID="pnlLogin"
    BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>







The registration.ascx page looks like this:







<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Registration.ascx.cs" Inherits="Registration" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc11" %>

<asp:LinkButton ID="lnkRegistration" runat="server" Text="Registration"></asp:LinkButton>
<asp:Panel ID="pnlRegistration" runat="server">

    <div class="form-group">
        <asp:Label runat="server" AssociatedControlID="EmailId" CssClass="col-md-2 control-label">Email Address</asp:Label>
        <div class="col-md-10">
            <asp:TextBox runat="server" ID="EmailId" CssClass="form-control" />
            <asp:RequiredFieldValidator runat="server" ControlToValidate="EmailId" />
        </div>
    </div>
    <div class="form-group">
        <asp:Label runat="server" AssociatedControlID="Password" CssClass="col-md-2 control-label">Password</asp:Label>
        <div class="col-md-10">
            <asp:TextBox runat="server" ID="Password" TextMode="Password" CssClass="form-control" />
            <asp:RequiredFieldValidator runat="server" ControlToValidate="Password" />
        </div>
    </div>

    <div class="form-group">
        <asp:Button runat="server" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" />
    </div>

</asp:Panel>

<cc11:ModalPopupExtender ID="popup1" runat="server" DropShadow="false"
    TargetControlID="lnkRegistration" PopupControlID="pnlRegistration"
    BackgroundCssClass="modalBackground" CancelControlID="lnkCancel">
</cc11:ModalPopupExtender>

推荐答案

如果我的猜测是正确的,那么我建议你要改变你的方法。



1.如果你将ascx控件注册到母版页我不知道你如何将它们显示为弹出窗口。



相反,你应该有两个不同的aspx页面,并注册徽标和注册控件到不同的页面。您可以从链接打开这些aspx页面作为弹出窗口。



您可以使用单个aspx页面注册ascx控件并根据您单击的链接隐藏一个。但是,这违反了单一责任原则。



希望这会有所帮助..
If my guess is correct on what you want to achieve then I would suggest you to change your approach.

1. If you are registering your ascx controls to master page I am not sure how you would display them as popup.

Instead you should have two different aspx pages and register logo and register control to different pages. You can open these aspx pages as popup from the links.

You can use single aspx page to register both ascx controls and hide one based on which link you are clicking. However, this violate the single responsibility principle.

Hope this helps..


这篇关于我想在ASP.NET Web表单项目中使注册和登录链接功能正常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆