2017-10-14 2 views
0

Mon modèle a un DisplayFormat ensemble comme le montre l'image ci-dessousFormatException sur Html.DisplayFor pour les valeurs décimales

[BsonElement("spread")] 
[BsonRepresentation(BsonType.Decimal128,AllowTruncation =true)] 
[DisplayFormat(DataFormatString = "{N6}")] 
public decimal Spread { get; set; } 

À mon avis, j'ai le code suivant:

<tbody> 
    @for (int i = 0; i < Model.Entries.Count; i++) 
    { 
     <tr> 
      <td> 
       @Html.DisplayFor(item => item.Entries[i].Spread) 
      </td> 

encore, lorsque la page charges, je reçois l'erreur:

FormatException: Input string was not in a correct format. System.Text.StringBuilder.FormatError() System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, string format, ParamsArray args) string.FormatHelper(IFormatProvider provider, string format, 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> expression) AspNetCore._Views_Dashboard_Bordao_cshtml+d__30.MoveNext() in Bordao.cshtml + @Html.DisplayFor(item => item.Entries[i].Spread)

Je l'ai essayé de changer formatString-"0.000", "N6" .. Toujours pas de succès .. Si en dehors du code de la vue, je cours string.format(spread, "N6"), j'obtiens le bon résultat.

Comment puis-je obtenir ma vue pour mettre en forme mes valeurs décimales avec 6 décimales. Merci

+1

Mais, selon la capture d'écran, l'erreur semble provenir de la propriété 'Spread' – adiga

+0

Votre code devrait fonctionner correctement sans aucun problème en ce qui concerne la mise en forme que vous avez appliquée à la propriété 'InitialBalance'. Êtes-vous sûr que c'est la cause du problème? En regardant la capture d'écran, c'est une propriété différente !. N'affichez pas non plus d'images de code, affichez la partie pertinente du code lui-même à la question. – Shyju

+0

désolé pour l'affichage de l'image. La propriété Spread est configurée de la même manière. –

Répondre

0

Je ne sais toujours pas pourquoi N6 ne fonctionne pas. Got it travailler avec 6 décimales en utilisant

[DisplayFormat(DataFormatString = "{0:0.#######}")] 

ou

[DisplayFormat(DataFormatString = "{0:N6}")]