UI的模式:相同的对象,以不同的方式显示

时间:2008-12-18 21:45:00

标签: c# asp.net-mvc user-interface design-patterns

我有一个输入序列号到数据库的应用程序。序列号具有一定数量的属性,用于定义它,用户必须/可以提供它们来生成。

public class Serial
{
    public string Number {get; set;}
    public string Part {get; set;}
    public string MfgOrder {get; set;}
    public string CusOrder {get; set;}
    public string Note {get; set;}
    ... etc ...
}

现在,该应用程序的起点向用户询问几条信息之一(例如零件号或制造订单等)。此起点可能已经填写了一些所需的用户输入。我想先拿这些已知的项目并根据它们改变表格。

例如。如果两条信息是零件号和制造订单号,并且用户提供制造订单号(与数据库中的零件号有关系)我想显示这些值但不允许它们是编辑。如果用户只是给我一个零件编号,我想允许Mfg订单显示为一个文本框,可能是(可能)可选的或旁边需要它。

public class MfgOrder
{
    public string MfgOrder {get; set;}
    public string Part {get; set;}
}

...

MfgOrder order = new MfgOrder(some_user_value); // queries database, returns populated object
Serial serial = new Serial() {
    MfgOrder = order.MfgOrder,
    Part = order.Part
};

这个应用程序现在正在工作,只是在UI中有if / then条件 - 如果你给了我一个Mfg订单,就这样显示,如果你给了我别的东西,就这样做,等等。问题已经请求了几个新选项,并且如果/然后语句变得非常丑陋,则会不断链接。

if(serial.comes_from_mfgOrder == true)
{
    %>Manufacturing Order: <%=serial.MfgOrder %><%
} else if (serial.comes_from_part_number == true) {
    %>Manufacturing Order: <%=Html.Textbox("MfgOrder")%><%
} else if // continue this for way too long now ...

这里有一个好的设计模式吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我相信您正在寻找的模式是模型视图控制器,或MVC。

http://www.dotnetheaven.com/Uploadfile/rmcochran/MVC_intro02012006001723AM/MVC_intro.aspx