代码之家  ›  专栏  ›  技术社区  ›  bytebender

域类中的HTML格式

  •  1
  • bytebender  · 技术社区  · 17 年前

    我的域中有一个简单的地址对象, ToString() 返回如下地址的方法:

    123试验大道
    APPT 1A
    华盛顿州斯波坎,99201

    我们将在几个不同的场合在一个网页上同时显示这个,所以在某个地方添加功能以显示HTML格式的地址是有意义的,但是如果我在哪里添加 ToStringHtmlFormat() 对于我的领域类,它开始闻起来很有趣。

    我可能有点挑剔,但您建议在哪里/如何完成这项工作,以保持我的域类没有任何HTML内容?

    谢谢你的建议…

    2 回复  |  直到 17 年前
        1
  •  6
  •   flq    17 年前

    你可以有一个HTMLWriter,它可以“访问”域类并打印出内容。然后,域类需要一个接受方法来接受访问者(访问者模式)。

    在灵活性和可维护性方面,尽管我会使用一些模板化引擎,其中包含您的HTML以及对那些您想要打印出来的属性的访问。通常,更复杂的站点也会引入一种称为viewModel的东西,它以一种用户界面HTML引擎很容易访问的方式来准备要显示的数据。

        2
  •  1
  •   Todd Smith Brandon    17 年前

    可以添加扩展方法:

    public static class AddressHelpers
    {
      public static string ToStringHtmlFormat (this Address address)
      {
          string result = address.Address1;
          // snip..
          return result;
      }
    }
    

    现在,您可以控制扩展方法何时何地包含在项目中(例如:仅在Web应用程序中)。