我的模型设置了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,string htmlFieldName,string templateName,object additionalViewData) Microsoft.AspNetCore.Mvc.Rendering.HtmlHelperDisplayExtensions.DisplayFor(IHtmlHelper htmlHelper,Expression&gt; expression) Bordao.cshtml中的AspNetCore._Views_Dashboard_Bordao_cshtml + d__30.MoveNext() + @ Html.DisplayFor(item =&gt; item.Entries [i] .Spread)
我尝试将formatString
更改为"0.000"
,"N6"
..仍然没有成功..
如果在视图代码之外我运行string.format(spread, "N6")
,我会得到正确的结果。
如何让我的视图将小数值格式化为6位小数。 感谢
答案 0 :(得分:0)
仍然不知道为什么N6不起作用。使用
使用6位小数[DisplayFormat(DataFormatString = "{0:0.#######}")]
或
[DisplayFormat(DataFormatString = "{0:N6}")]