cfl*_*y24 5 c# asp.net-mvc string-formatting razor asp.net-mvc-4
我正在尝试格式化从我的viewModel循环的电话号码,如下所示:(###) ###-####无需将字符串解析为小数.
此方法给出Formatting is specified, but argument is not IFormattable错误:
@foreach (var client in Model.Clients)
{
<td>@String.Format("{0:(###) ###-####}", client.TelephoneNumber)</td>
}
Run Code Online (Sandbox Code Playgroud)
所以,我需要解析为小数:
@foreach (var client in Model.Clients)
{
<td>@String.Format("{0:(###) ###-####}", Decimal.Parse(client.TelephoneNumber))</td>
}
Run Code Online (Sandbox Code Playgroud)
但是无法保证循环的数字只是数字,因此最有可能至少一次解析尝试失败.
有没有办法实现这种格式,而无需解析为小数?
如果您TelephoneNumber是a,string则始终可以使用子字符串来格式化数字。它不是那么干净,但您不需要任何单独的库并转换为decimal:
@String.Format("({0}) {1}-{2}"
, client.TelephoneNumber.Substring(0, 3)
, client.TelephoneNumber.Substring(3, 3)
, client.TelephoneNumber.Substring(6, client.TelephoneNumber.Length - 6))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6357 次 |
| 最近记录: |