C# 在表示层使用多态性的干净方法-ASP.NET

C# 在表示层使用多态性的干净方法-ASP.NET,c#,asp.net,C#,Asp.net,很多时候,我发现自己在代码背后进行UI控件操作,并希望找到一种干净的方法来实现这一点 用例: 下拉列表具有CSS1样式,在编辑模式下可编辑,但 具有CSS2样式,仅在视图模式下查看 我可以通过一组switch-case语句来实现这一点。我可以使用多态性并创建EditMode和ViewMode类,但这需要我有一个要传递给这些类的UI控件的引用。这将UI和我想要避免的逻辑层紧密地结合在一起 有什么想法吗 编辑: 有谁能给出一个从代码背后外部化UI逻辑的例子吗?传递控件并不一定是紧密耦合的,但作为一般

很多时候,我发现自己在代码背后进行UI控件操作,并希望找到一种干净的方法来实现这一点

用例: 下拉列表具有CSS1样式,在编辑模式下可编辑,但 具有CSS2样式,仅在视图模式下查看

我可以通过一组switch-case语句来实现这一点。我可以使用多态性并创建EditMode和ViewMode类,但这需要我有一个要传递给这些类的UI控件的引用。这将UI和我想要避免的逻辑层紧密地结合在一起

有什么想法吗

编辑:
有谁能给出一个从代码背后外部化UI逻辑的例子吗?

传递控件并不一定是紧密耦合的,但作为一般规则,我能理解其中的原因,并同意这一点

一个选项是将类创建为UI类。这并不意味着必须将其嵌入ASP.NET web应用程序中,而是将该库设置为web UI库。为此,我命名:

company.application.UI.{libraryName}

您的命名可能不同

在体系结构中,拥有具有多态助手类的UI库并没有错。我不会将这些类下移到业务层。

看一看。在那里,您可以找到一种将视图控件与编辑控件完全分离的方法