2012-08-14 62 views
0

我要显示这样的(999)999-9999我认为CSS类会这样做的电话号码,但它不MVC3格式的电话号码

<td>@Html.Encode(Model.PhoneModel.PhoneNumber)</td>. 

我尝试这样做,但它不” t work

@String.Format("{0:(###) ###-####}",Model.PhoneModel.PhoneNumber.ToString()) 
+0

不是'@ Html.Encode'只是打印(一个被公认编码的)字符串?你想要添加课程到什么地方? – 2012-08-14 19:27:45

+0

其实我想要做的是格式化这样的电话号码(999)999-9999 – 2012-08-14 19:30:17

+0

它是如何涉及到Proeprty?没有括号和时髦? – Shyju 2012-08-14 19:31:10

回答

1

我得到这个工作,但我不喜欢这是regrex的事实。

@Regex.Replace(Model.PhoneModel.PhoneNumber, @"(\d{3})(\d{3})(\d{4})", "($1) $2-$3") 
0

您可能希望看看如何更改输出值。考虑菲尔哈克的这篇文章。

http://haacked.com/archive/2010/04/28/replacing-html-encode.aspx

编辑: 为了解决您的格式的编辑为电话号码参考此线程: How to format a string as a telephone number in C#

String.Format("{0:(###) ###-####}", 8005551212); 
+0

所以我们应该忽略Html.Encode? – 2012-08-14 19:35:01

+0

是的。正确。自从MVC2以来,这已不再需要 – Shawn 2012-08-14 19:38:36

0

有没有在格式化电话号码花费太多的精力多一点,当其他人已经为你做了所有的工作。检出http://code.google.com/p/libphonenumber/为一个库,它将格式化数字(并将它们转换回标准格式)。它也可以作为libphonenumber-csharp在nuget上使用。