微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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相同的实现)

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

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

解决方法

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

原文地址:https://www.jb51.cc/csharp/243956.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐