格式化不同类型的地址

时间:2010-04-01 03:48:26

标签: c# asp.net street-address

我有各种类都包含地址详细信息,即AddressLine1,AddressLine2,AddressLine3,Suburb,Town等。

在前端,我需要以特定方式格式化地址,即

AddressLine1<br />
AddressLine2<br />
Suburb State Postcode

如果AddressLine2不存在或为空,请不要显示它。挺直截了当的。我正在尝试确定显示此信息的最佳方式。目前,每个类的Address属性调用一个FormatAddress方法,该方法写出html字符串。这作为类的方法存在。我的意见是,前端控件(即ascx等)应该存在任何格式。但是,如果这些DetailClasses需要格式化相同的地址信息,那么最好的选择是什么,也更容易维护?

2 个答案:

答案 0 :(得分:1)

如果组成部分是公共属性,那么扩展方法怎么样?这不会污染类本身的地址抽象,但可以轻松,自然地访问功能和可读性。

public static class AddressExtensions
{
    public static string ToHtmlString(this IAddress address)
    {
        // return the formatted html from address
    }
}

答案 1 :(得分:0)

似乎这些格式化方法特定于一个类,其中每个类都可以拥有自己的专用格式。

在类本身中处理格式化是可以接受的。

或者您可以在UI程序集中创建专门的格式化类,专门用于每个类,其中可以标记格式化类,例如,通过属性,识别它专门用于格式化的数据类的类型。