2012-08-14 64 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上使用。