【发布时间】:2017-10-14 13:35:18
【问题描述】:
我的模型有一个DisplayFormat 设置,如下图所示
[BsonElement("spread")]
[BsonRepresentation(BsonType.Decimal128,AllowTruncation =true)]
[DisplayFormat(DataFormatString = "{N6}")]
public decimal Spread { get; set; }
在我看来,我有以下代码:
<tbody>
@for (int i = 0; i < Model.Entries.Count; i++)
{
<tr>
<td>
@Html.DisplayFor(item => item.Entries[i].Spread)
</td>
不过,当页面加载时,我得到了错误:
FormatException:输入字符串的格式不正确。 System.Text.StringBuilder.FormatError() System.Text.StringBuilder.AppendFormatHelper(IFormatProvider 提供程序,字符串格式,ParamsArray args) string.FormatHelper(IFormatProvider 提供程序,字符串格式,ParamsArray args) Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.TemplateBuilder.Build() Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GenerateDisplay(ModelExplorer modelExplorer,字符串 htmlFieldName,字符串 templateName,对象附加视图数据) Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(IHtmlHelper htmlHelper, Expression> 表达式) Bordao.cshtml 中的 AspNetCore._Views_Dashboard_Bordao_cshtml+d__30.MoveNext() + @Html.DisplayFor(item => item.Entries[i].Spread)
我尝试将formatString 更改为"0.000"、"N6".. 仍然没有成功..
如果在视图代码之外运行string.format(spread, "N6"),我会得到正确的结果。
如何让我的视图以 6 位小数格式化十进制值。 谢谢
【问题讨论】:
-
但是,根据截图,错误似乎来自
Spread属性 -
您的代码应该可以正常工作,而您应用于
InitialBalance属性的格式没有任何问题。你确定这是问题的原因吗?看截图,它是一个不同的属性!也不要发布代码图像,将代码本身的相关部分发布到问题中。 -
抱歉图片发布。 Spread 属性的配置方式相同。
-
已编辑以更改代码图像
-
必须是
[DisplayFormat(DataFormatString = "{0:N6}")]
标签: asp.net-mvc razor asp.net-core-mvc