假设我的电话号码作为 10 位字符串存储在数据库中:
0000000000
我想在将此电话号码呈现给用户时将其格式化为:
(000) 000-0000
我在处理这种格式的实用程序程序集中有一个扩展方法:
static string ToPhoneNumber(this string value)
{
return Regex.Replace(value, @"(\d{3})(\d{3})(\d{4})", "($1) $2-$3");
}
我的问题是,我在什么时候应用这种转换?
1)在视图中:
@Model.PhoneNumber.ToPhoneNumber()
2)在视图模型中:
public string FormattedPhoneNumber
{
get
{
return this.PhoneNumber.ToPhoneNumber()
}
}
3)在控制器中:
userModel.FormattedPhoneNumber = userModel.PhoneNumber.ToPhoneNumber()
4)在域模型中(与#2相同的实现)
5)在服务中(与#3相同的实现)
此外,答案是否取决于它是全局格式化需求(如电话号码)还是单个视图上的孤立一次性格式化?
我会给出我的想法,但不想影响任何答案。