2013-06-11 2 views
5

ho la mia casella di controllo nel mio che è come questo @Html.CheckBoxFor(model => model.SKUs.Jewish) ma il mio database ebraico nel tipo è nullable così mi dà un errore cannot implicitly convert type 'bool?' to 'bool'. come controllare il mio modello che ha dei valori, allora dovrebbe mostrare che altrimenti no.please aiuto.Converti bool? per bool in Visualizza

+0

@ Html.CheckBoxFor (model => model.SKUs.Jewish.HasValue? (Bool) model.SKUs.Jewish: false) – Steve

+0

ITS DANDO UN ERRORE: i modelli possono essere utilizzati solo con accesso al campo, accesso alla proprietà, singolo -dimensionamento di array di dimensioni, o espressioni di indicizzazione personalizzate a singolo parametro. – DharaPPatel

+0

http://stackoverflow.com/questions/6849774/mvc3-creating-checkbox-for-nullable-boolean –

risposta

0

Con un tipo nullable si controlla se ha un valore con thing.HasValue e si ottiene il valore effettivo utilizzando thing.Value.

+0

come faccio a verificare in @ Html.CheckBoxFor (model => model.SKUs.Jewish) in questo codice? – DharaPPatel

6

è possibile utilizzare il seguente:

@Html.CheckBox("SKUs.Jewish", Model.SKUs.Jewish.GetValueOrDefault()); 

Se il valore non è impostato viene utilizzato il valore predefinito tipi nullable che è falso.

+0

Quando post con questo modo l'invio di valori nulli? –

+0

@ CanÜrek Ciao, ho migliorato la mia risposta sopra. Penso che funzioni meglio. – hutchonoid

0

E infine ho risolto il problema. Se stai usando una casella di controllo; deseleziona l'opzione Consenti null del tuo campo nel tuo DB. Questo è tutto!

+1

E se il campo deve essere nullo a volte? –