c# - UI : Same object, 的模式显示不同

标签 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 ...
}

现在,此应用程序的起点要求用户提供几条信息之一(例如零件号或制造订单等)。此起点可能已经填写了一些所需的用户输入。然后我想采用那些已知的项目并根据它们更改表格。

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

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 条件来工作——如果你给我一个制造订单,就这样显示,如果你给我其他东西,就这样显示,等等。问题是否已请求多个新选项,并且不断链接 if/then 语句变得非常丑陋。

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 ...

这里有好的设计模式吗?

谢谢!

最佳答案

关于c# - UI : Same object, 的模式显示不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/379412/

相关文章:

c# - 从类名中获取模型元数据

c# - 如何在我的 ASP.Net MVC 5 应用程序的同一页面中编辑和删除 POST 请求

asp.net-mvc - 在 mvc4 中为 dropdownlistfor 选择的值

python - 如何在窗口中像 exe 一样为 Tkinter 构建一个包?

java - 用于铁路模拟的命令处理程序/解析器

c# - 使用具体类型覆盖通用方法(类型参数 * 隐藏类 *)

c# - 如果类是 WinRT 类型,如何使用 C# 反射来确定

c# - ABCpdf 访问登录区域内的页面

java - 通过为 JButton 着色的俄罗斯方 block GUI。渲染问题

c# - 我应该将 Entity Framework 包含在我的类库中还是直接包含在应用程序中?