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

前端之家收集整理的这篇文章主要介绍了c# – 格式化逻辑在哪里属于MVC?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我的电话号码以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相同的实现)

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

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

解决方法

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

猜你在找的C#相关文章