Il fatto è che sto passando alcuni dati nel modello dalla prima azione alla seconda azione dello stesso controller ma i dati nel modello sono visibili nella stringa di query URL.
Ecco come è visibile alla stringa di query
Adesso
1 - esiste una soluzione per nascondere quei dati nella stringa di query Oltre all'utilizzo dei dati temporanei
2 - e perché il reindirizzamento all'azione sta avvenendo dal client ??
3 - Sembra passare i dati tramite il metodo Get nel reindirizzamento, esiste un modo in cui posso passare i dati in Body (ovvero Post).
risposte:
2 per risposta № 1Il metodo MVC RedirectToAction invia semplicemente il fileclient (browser, in questo caso) un'intestazione HTTP denominata "Posizione" nella risposta e imposta il codice di stato su 302 "Trovato", per indicare un reindirizzamento suggerito. Tale intestazione contiene l'URL della vista specificata e inserisce tutti i dati del modello nella stringa di query.
Il cliente può scegliere se visitare quell'URLo no. I browser generalmente seguono automaticamente il collegamento, perché è facile da usare. Altri client HTTP potrebbero non farlo. Ecco come funziona - questo è generale per tutto il web, non solo per MVC. Il reindirizzamento viene sempre eseguito come GET, non è possibile reindirizzare tramite altri metodi HTTP.
Se si desidera semplicemente visualizzare la vista senza reindirizzamento, utilizzare
return View("addLeaveEntitlement", result.Model)
Quindi c'è solo una richiesta, non c'è reindirizzamento e l'URL non cambia affatto (nemmeno all'URL normale della vista "aggiungi" - questo potrebbe essere o non essere desiderabile).