2013-04-30 31 views
1

我使用的String.Format来格式化Razor视图内我的模型值,但它并没有给出期望的结果Asp.net MVC Razor视图的String.Format似乎并不工作

@string.Format("{0:00}", Model.Range == null ? "" : Model.Range.ToString()) 

应该导致为05

如果我使用下面这让我产生而不是从模型

@string.Format("{0:00}", 5) 

有人有任何想法或同样的经历?

+0

尝试使用{0}删除{0:00} – 2013-04-30 14:32:12

+1

什么类型的“范围”? – 2013-04-30 14:34:02

+0

这只是模型的一个属性。 – Pamma 2013-04-30 15:34:31

回答

5

如果Model.Range是一个数字类型,那么你需要写:

@string.Format("{0:00}", Model.Range == null ? "" : Model.Range) 

因为与Model.Range.ToString()您已经将您Range串这样的数字格式不能应用,因为它不是一个数字了。

顺便说string.Format处理空参数,以便它足够写:

@string.Format("{0:00}", Model.Range) 

如果Model.Range不是一个数字,但与Model.Range.ToString()你在一个字符串表示的数,那么你需要先将其转换为一个数字(如使用int.Parse或其他变体),那么你可以将编号传递给string.Format,现在可以应用正确的格式。

+0

感谢namesv这是确切的解释 – Pamma 2013-04-30 15:33:48