Html.DisplayFor十进制格式?

Ali*_*hşi 23 asp.net-mvc string-formatting

我有一个小数值,例如: 59625879,00

我想像这样显示这个值:59.625,879或者59625,879

我怎么能这样做@Html.DisplayFor(x => x.TAll, String.Format())

谢谢.

Dar*_*rov 69

使用[DisplayFormat]属性装饰视图模型属性并指定所需的格式:

[DisplayFormat(DataFormatString = "{0:N}", ApplyFormatInEditMode = true)]
public decimal TAll { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后在你看来:

@Html.DisplayFor(x => x.TAll)
Run Code Online (Sandbox Code Playgroud)

另一种可能性如果您不想在视图模型上执行此操作,您也可以在视图中执行此操作:

@Model.tAll.ToString("N")
Run Code Online (Sandbox Code Playgroud)

但我建议你采用第一种方法.


另一种可能性是为十进制类型(~/Views/Shared/DisplayTemplates/MyDecimalTemplate.cshtml)编写自定义显示模板:

@string.Format("{0:N}", Model)
Run Code Online (Sandbox Code Playgroud)

然后:

@Html.DisplayFor(x => x.TAll, "MyDecimalTemplate")
Run Code Online (Sandbox Code Playgroud)

  • 对于任何获得此(正确且良好)答案但想知道他们还可以如何调整显示格式的人,请查看此链接 https://msdn.microsoft.com/en-us/library/system.web.ui。 webcontrols.boundfield.dataformatstring(v=vs.110).aspx (2认同)