c# – 格式化逻辑在哪里属于MVC?
发布时间:2020-12-15 08:32:33 所属栏目:百科 来源:网络整理
导读:假设我的电话号码以10位数字符串的形式存储在数据库中: 0000000000 我想在将此电话号码呈现给用户时将其格式化为: (000) 000-0000 我在实用程序程序集中有一个扩展方法来处理这种格式: static string ToPhoneNumber(this string value){ return Regex.Rep
假设我的电话号码以10位数字符串的形式存储在数据库中:
我想在将此电话号码呈现给用户时将其格式化为:
我在实用程序程序集中有一个扩展方法来处理这种格式: 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相同的实现) 此外,答案取决于它是否是全局格式需求(如电话号码)与单个视图上的隔离一次性格式化? 我会给出我的想法,但不想影响任何答案. 解决方法
我认为决定如何显示数据是一种观点责任.因为只有视图知道可用于演示的内容.另一方面,在控制器中执行它可能更容易.控制器会知道用户的区域设置.总而言之,我认为这几乎没有什么区别.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |