ERR_CACHE_MISS Pulsante Torna indietro

di il
3 risposte

ERR_CACHE_MISS Pulsante Torna indietro

Salve mi è sorto un problema che quasi sicuramente( a quanto ho letto dovrebbe essere abbastanza semplice).
sto implementando un app in asp net core con Net 5, nello specifico una pagina con un dopwonlist

il chtml che interessa al problema è

@using (Html.BeginForm())
{
	<div class="form-group">
        <label class="control-label">Seleziona il Cliente</label>
        <select class="btn-primary form-control" id="SelectCliente" name="SelectCliente" 			 
          onchange="document.forms[0].submit()" value=@ViewData["CurrentCliente"]>
        <option selected= "@ViewBag.SelectCliente">@ViewBag.SelectCliente</option>
        <option value=51>Cliente 1</option>
        <option value=52>Cliente 2</option>
        <option value=53>Cliente 3</option>
        </select>
        </div>
}
  
ed il controller è

[Authorize(Roles = "1")]
public async Task<IActionResult> PubblicaCedoliniAdmin(int SelectCliente, int currentCliente, int? pageNumber)
{
	//Gestisco le Pagine
        if (SelectCliente != 0)
        {
        pageNumber = 1;
        }
        else
        {
        SelectCliente = currentCliente;
        }
            ViewData["CurrentCliente"] = SelectCliente;

            var ElencoPubli = await _context.ElenchiPubbliView.FromSqlRaw("SELECT Inquadramento,
                "Anno, Mese, Sviluppo, COUNT(*) As NumCedolini,Pubblicato,Tipo,CodProgr,DataElaborazione FROM (SELECT Inquadramento, " +
                "Anno, Mese, Cantiere, Listino,Sviluppo,TipoDocumento, DipCliente.CodiceCliente, Pubblicato,Tipo,CodProgr,DataElaborazione " +
                "FROM (SELECT CodiceCliente,CodiceFiscaleDipendente FROM ARCHIVIOGENERALE.dbo.AnagraficaGE GROUP BY CodiceCliente,CodiceFiscaleDipendente) AS DipCliente RIGHT OUTER JOIN " +
                "ElencoCedolini ON DipCliente.CodiceFiscaleDipendente = ElencoCedolini.CodiceFiscale WHERE (DipCliente.CodiceCliente=" + SelectCliente + ")) AS RaggrPeridiodo GROUP BY Inquadramento, Anno, Mese,TipoDocumento, Pubblicato, Sviluppo,Tipo,CodProgr,DataElaborazione " +
                "ORDER BY Anno DESC, Mese DESC, Inquadramento").AsNoTracking().ToListAsync();

            //Definisco il Numero di Record per Pagina
            int pageSize = 8;
            return View(await PaginatedList<ElencoPubbliView>.CreateAsync(ElencoPubli, pageNumber ?? 1, pageSize));
        }
Funziona perfettamente nel senso che apro la pagina, ed è vuota, seleziono il cliente che mi interessa e la pagina si popola con i dati del cliente selezionato.
nella pagina c'è il pulsante per visualizzare in un altra pagina i cedolini del singolo cliente

<a class="d-inline btn-sm btn-primary text-white" asp-action="ElencoCedolini" asp-route-Inquadramento="@item.Inquadramento" asp-route-Mese="@item.Mese" asp-route-Anno="@item.Anno" asp-route-Sviluppo="@item.Sviluppo" asp-route-SelectCliente="@ViewData["CurrentCliente"]">Elenco Cedolini</a>
ed anche questo funziona perfettamente.

solo che se cerco di tornare alla pagine precedente mi dà l errore
Conferma reinvio modulo Questa pagina web richiede dati che hai inserito in precedenza per poter essere visualizzata correttamente. Puoi inviare di nuovo i dati, ma in questo caso ripeterai l'azione precedentemente eseguita nella pagina.
Premi il pulsante Ricarica per inviare di nuovo i dati necessari per caricare la pagina.
ERR_CACHE_MISS
leggendo in giro ho capito che è un problema noto al fine di evitare di ripetere un eventuale reinvio di dati sensibili più volte.
ho visto che si dovrebbe poter risolvere il problema facendo un Post-Redirect-Get ma gli esempi che ho trovato erano solo per moduli tipo create/edit per evitare di reinviare, appunto il modulo per una seconda volta nel caso si torni indietro.
nel mio caso invece è solo un problema di selezione.
come posso risolvere questo fastidioso problema?

3 Risposte

  • Re: ERR_CACHE_MISS Pulsante Torna indietro

    eternityck ha scritto:


    ....
    nel mio caso invece è solo un problema di selezione.
    come posso risolvere questo fastidioso problema?
    usando il GET invece del POST
  • Re: ERR_CACHE_MISS Pulsante Torna indietro

    Ciao sspintux,
    grazie per avermi risposto, scusami sono ancora abbastanza nuovo in asp net core, ma in che senso usa Get invece di post?
    se nel controller specifico il Get così:
        [Authorize(Roles = "1")]
        [HttpGet]
        public async Task<IActionResult> PubblicaCedoliniAdmin(int SelectCliente, int currentCliente, int? pageNumber)
        {
    ....
    }
    
    al momento della seleziona mi da errore perchè mi chiede l [httpPost]...
    Non ho capito il tuo suggerimento, dove dovrei intervenire?
  • Re: ERR_CACHE_MISS Pulsante Torna indietro

    Allora, ho risolto in parte, ho usato form al posto di Html.beginform
    
    <div class="col-md-2">
                            <form asp-controller="GestionePubblica" asp-action="PubblicaCedoliniAdmin" method="get">
                                <label class="control-label">Seleziona il Cliente</label>
                                <select class="btn-primary form-control" name="SelectCliente" onchange="document.forms[0].submit()" >
                                    <option value=@ViewData["CurrentCliente"] selected >@ViewBag.SelectCliente</option>
                                    <option value=51>Cliente 1</option>
                                    <option value=52>Cliente 2</option>
                                </select>
                            </form>
                        </div>
    
    il mio problema è che quando torno indietro nel select si vede il value che avevo selezionato prima ma non si è attivata la selezione credo dovrei fare qualcosa come un refresh nella prima option
    <option value=@ViewData["CurrentCliente"] selected >@ViewBag.SelectCliente</option>
    qualche idea?
    Grazie
Devi accedere o registrarti per scrivere nel forum
3 risposte