25 messaggi dal 25 febbraio 2008
Ciao a tutti.
Sto usando asp.net mvc3 per creare un semplice listino prezzi online. Per la validazione dei dati uso le dataannotation e utilizzo entity framework per collegarmi con il database.
Ho creato lo schema sul designer e poi l' ho mappato verso sql server.
Una delle tabelle è Prodotti e contiene un campo PrezzoListino di tipo decimal così definito:
[Display(Name="Prezzo")]
[Required(ErrorMessage="Il prezzo è obbligatorio")]
[DataType(DataType.Currency,ErrorMessage="Non è un prezzo valido")]
public decimal PrezzoListino { get; set; }


Il mio problema nasce durante l' inserimento dei dati.
Nella view di creazione ho definito questi campi:
<div class="editor-label">
    @Html.LabelFor(model => model.PrezzoListino)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.PrezzoListino)
    @Html.ValidationMessageFor(model => model.PrezzoListino)
</div>


Inserendo un valore intero la validazione va ok sia lato client che server, usando un decimale come 12.99 la validazione lato client passa ma il server restituisce un errore:
"The value '12.99' is not valid for PrezzoListino"

Come posso salvare un prezzo su db usando entity framework?
Modificato da ciat89 il 18 marzo 2011 08.33 -
Modificato da ciat89 il 18 marzo 2011 09.18 -
Modificato da ciat89 il 18 marzo 2011 09.19 -
Modificato da ciat89 il 18 marzo 2011 09.19 -
ciat89 wrote:
Inserendo un valore intero la validazione va ok sia lato client che server, usando un decimale come 12.99 la validazione lato client passa ma il server restituisce un errore:

già provato con la virgola, anzichè il punto? non vorrei fosse un "semplice" problema di locale.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
25 messaggi dal 25 febbraio 2008
Mettendo la virgola la validazione lato client mostra:
The field Prezzo must be a number.


Potrebbe essere un problema di localizzazione?
ciat89 wrote:
Qualche idea?

dovresti provare diverse strade. è sicuramente un problema di localizzazione. avessi più tempo, farei una prova anche io  .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
25 messaggi dal 25 febbraio 2008
Se può aiutare ho già provato a impostare l' attributo Globalization del web.config senza successo.
25 messaggi dal 25 febbraio 2008
Dopo diversi test ho provato a seguire questa guida:
http://haacked.com/archive/2011/03/19/fixing-binding-to-decimals.aspx

In pratica si implementa un ModelBinder custom per il tipo di dati decimal.
Inserendo un valore come 12.12 passa sia la validazione lato client che quella lato server, provando invece con 12,12 la validazione lato client restituisce sempre lo stesso errore.
320 messaggi dal 12 gennaio 2007
Ho lo stesso problema,sei riuscito a risolvere?

Massimo Sanfelici

Mantova

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.