加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 格式化逻辑在哪里属于MVC?

发布时间:2020-12-15 08:32:33 所属栏目:百科 来源:网络整理
导读:假设我的电话号码以10位数字符串的形式存储在数据库中: 0000000000 我想在将此电话号码呈现给用户时将其格式化为: (000) 000-0000 我在实用程序程序集中有一个扩展方法来处理这种格式: static string ToPhoneNumber(this string value){ return Regex.Rep
假设我的电话号码以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相同的实现)

此外,答案取决于它是否是全局格式需求(如电话号码)与单个视图上的隔离一次性格式化?

我会给出我的想法,但不想影响任何答案.

解决方法

我认为决定如何显示数据是一种观点责任.因为只有视图知道可用于演示的内容.另一方面,在控制器中执行它可能更容易.控制器会知道用户的区域设置.总而言之,我认为这几乎没有什么区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读