需要为.NET中的多部分表单进行良好的设计
我在C#/ASP中有一组屏幕,用户在其中输入信息。它被分为多个部分,以使其更加用户友好。它过去是在单独的页面中,但这很难管理,因为所有的信息都非常相关。因此,它被更改为一个页面中的面板,我们根据用户的进度显示和隐藏这些面板 我们希望能够很容易地移动物体。目前,我们必须做大量的复制粘贴,这不是特别快,而且容易出错。有没有更好的方法来处理多部分表单,使它们更模块化需要为.NET中的多部分表单进行良好的设计,.net,design-patterns,.net,Design Patterns,我在C#/ASP中有一组屏幕,用户在其中输入信息。它被分为多个部分,以使其更加用户友好。它过去是在单独的页面中,但这很难管理,因为所有的信息都非常相关。因此,它被更改为一个页面中的面板,我们根据用户的进度显示和隐藏这些面板 我们希望能够很容易地移动物体。目前,我们必须做大量的复制粘贴,这不是特别快,而且容易出错。有没有更好的方法来处理多部分表单,使它们更模块化 (作为背景,我主要是一名Java开发人员,最近一直在使用.NET)一个.ascx文件,也称为UserControl是在整个项目中重用常见
(作为背景,我主要是一名Java开发人员,最近一直在使用.NET)一个
.ascx
文件,也称为UserControl
是在整个项目中重用常见html/代码的好方法。它们本质上只是其他.NET控件的容器
让我们假设你有一个非常简单的表单,你只是询问一个人的姓名和年龄,出于某种原因,你想在一页或几页中多次使用这个表单
UserControl1.ascx
标记:
<asp:Label runat="server" id="lblName" Text="What is the person's name?" AssociatedControlID="txtName"></asp:Label>
<asp:TextBox runat="server" id="txtName"></asp:TextBox>
<asp:Label runat="server" id="lblAge" Text="What is the person's age?" AssociatedControlID="txtAge"></asp:Label>
<asp:TextBox runat="server" id="txtAge"></asp:TextBox>
<asp:Button runat="server" id="btnSubmit" Text="Submit" Onclick="btnSubmit_Click"></asp:Button>
<%@ Register src="UserControl1.ascx" tagname="UserControl1" tagprefix="uc1" %>
<html>
...blah blah...
<p>Tell us about you</p>
<uc1:UserControl1 ID="ucYou" runat="server" />
<p>Tell us about your friend</p>
<uc1:UserControl1 ID="ucYourFriend" runat="server" />
.. blah blah
</html>
然后在其他页面上,您只需将此用户控件放入,就可以像这样引用它:
Default.aspx
标记:
<asp:Label runat="server" id="lblName" Text="What is the person's name?" AssociatedControlID="txtName"></asp:Label>
<asp:TextBox runat="server" id="txtName"></asp:TextBox>
<asp:Label runat="server" id="lblAge" Text="What is the person's age?" AssociatedControlID="txtAge"></asp:Label>
<asp:TextBox runat="server" id="txtAge"></asp:TextBox>
<asp:Button runat="server" id="btnSubmit" Text="Submit" Onclick="btnSubmit_Click"></asp:Button>
<%@ Register src="UserControl1.ascx" tagname="UserControl1" tagprefix="uc1" %>
<html>
...blah blah...
<p>Tell us about you</p>
<uc1:UserControl1 ID="ucYou" runat="server" />
<p>Tell us about your friend</p>
<uc1:UserControl1 ID="ucYourFriend" runat="server" />
.. blah blah
</html>
页面指令
正如Robert在评论中提醒我的那样,您需要确保使用UserControl的页面顶部有正确的page指令。如果您在设计视图中,只需将UserControl拖到页面上,VisualStudio将为您处理此问题。否则,您需要自己包含它。您可能需要签出向导控件——它的设计正好可以处理这种情况 一定要注册标记前缀uc1。@罗伯特:忘了!现在添加。