944 messaggi dal 11 febbraio 2013
Senza ricevere errori non riesco a inserire dati in un actionresult

public async Task<ActionResult> create([Bind(Include = "Data, Consumatore,Ordine")] Ordine ordine,
            string racCodana, string codiceOmaggio, string codice)
        {


nel binding ci sono entità come chiavi esterne

non ottengo errori ma non riesco a salvare i dati
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, se il ModelState.IsValid è false, probabilmente hai delle data annotation tipo [Required] nella classe Ordine che rendono obbligatorie alcune proprietà. Dev'essere che proprietà restano vuote, dato che stai facendo il bind solo su Data, Consumatore e Ordine.

Metti un breakpoint e vedi cosa contiene ModelState.Errors, ti darà indizi sulla causa del problema.

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Facendo un debug non ho trovato Modelstate.errors
Ora ricontrollo
11.886 messaggi dal 09 febbraio 2002
Contributi
Beh, può darsi che tu non l'abbia usato nel codice ma se lo aggiungi alle Watch expressions durante il debug puoi vedere cosa contiene.
Nel pannellino Watch puoi scrivere un'espressione ed esplorare il valore restituito.
https://i-msdn.sec.s-msft.com/dynimg/IC848481.jpeg
https://msdn.microsoft.com/en-us/library/0taedcee.aspx

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
la finestra di controllo immediato non mi da nulla...cosi ho fatto questo
foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                       ViewBag.Error = error.ErrorMessage ;
                    }
                }


Hai ragione tu perchè mi restituisce il messaggio di Required in una classe metadataEntita

però lo faccio già ...solo che non rispetto il "name"


 public async Task<ActionResult> ChooseGift(
            [Bind(Include = "..MD_RANDOM_CONSUMATORE...")]
            OrdineOmaggio ordineOmaggio,
            string racCodana, string codiceOmaggio, string codice)
        {
            var randomConsumatore = _context.CodiciRandomConsumatori
                .SingleOrDefault(c => c.Codice == codice) ??
                                    new CodiceRandomConsumatore
                                    {
                                        Id = -1,
                                        Codice = "",
                                        Assegnato = null,
                                        Distinzione = ""
                                    };
            if (ModelState.IsValid)
            {
            ...
                ordineOmaggio.MD_RANDOM_CONSUMATORE = randomConsumatore; // FK


Percui vuole il nome della virtual property che è una foreign key?
Modificato da jjchuck il 08 maggio 2018 00.07 -
944 messaggi dal 11 febbraio 2013
Mi chiedo se con foreign key a tabelle esterne al modello non mi convenga creare un viewModel
e poi fare il form su questo model

si fa cosi?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, sì puoi lavorare con un ViewModel o direttamente con l'entità come stavi facendo.


però lo faccio già ...solo che non rispetto il "name"
Percui vuole il nome della virtual property che è una foreign key?

Mmmh... credo di non aver capito.

Comunque, qui il problema è molto semplice: c'è una proprietà obbligatoria che non stai valorizzando.
Metti un breakpoint nell'action che riceve i dati del form, poi vai nel pannello watch e scrivi ModelState.Errors per vedere cosa c'è al suo interno.

ciao,
Moreno
Modificato da BrightSoul il 08 maggio 2018 22.13 -

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Bhe non mi sono spiegato io...

cmq ottengo:
ModelState.Errors
Errore interno nel valutatore di espressioni.


MetaData

public class OrdineOmaggioMetadata
    {

        [Required(ErrorMessage = "Seleziona una foto.")]
        public Omaggio MD_OMAGGIO;


nella pagina se uso l'helper per la validazione mi da l'errore sopra: ovvero MD_OMAGGIO.CodiceOmaggio
è null


    @Html.Hidden("CodiceOmaggio") ok
    @Html.ValidationMessage("CodiceOmaggio") 
    
    @Html.HiddenFor(m=> m.MD_OMAGGIO.CodiceOmaggio) ERRORE
    @Html.ValidationMessageFor(m => m.MD_OMAGGIO.CodiceOmaggio)


Il model della View è OrdineOmaggio che ha come FKey la tabella OMAGGIO che porta i codici degli articoli

Non capisco cosa sbaglio... ma l'errore è ovviamente tutto mio...

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.