假设我的电话号码以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相同的实现)
此外,答案取决于它是否是全局格式需求(如电话号码)与单个视图上的隔离一次性格式化?
我会给出我的想法,但不想影响任何答案.