Sto visualizzando un elenco di articoli per un determinato ordine. Quando un utente fa clic su Aggiungi elemento, reindirizzo alla pagina Articolo/Crea. Questa pagina raccoglie quell'input necessario, ma deve anche conoscere l'ID ordine a cui appartiene l'elemento. Qual è il modo appropriato per passare l'OrderID all'elemento/Crea in modo che sopravviva al post del modulo quando viene salvato l'elemento appena creato.ASP.NET MVC Crea su una relazione dettagli principale
Ho giocato con TempData e ho scritto l'id nella pagina dei dettagli tramite Html.Encode(). Mi fa diventare parte del modo in cui l'id compare sul modulo dell'oggetto ma il valore viene perso quando il modulo invia e pubblica. Suppongo perché non fa parte della collezione di form. Sto indovinando che la mia soluzione alternativa non è il modo migliore e vorrei sapere se qualcuno può indicare il modo corretto di farlo in asp.net mvc.
Dennis - questo sembra molto meglio della mia idea. Un chiarimento però - come ottengo il orderId per sopravvivere al post del controller OrderItem. Sembra che voglia utilizzare la rotta predefinita, non quella appena creata. [AcceptsVerbs (HttpVerbs.Post)] public ActionResult Create (raccolta FormCollection) – etechpartner
Assicurarsi che la route OrderItems sia elencata prima della route predefinita. Questo fa la differenza. Inoltre, è necessario includere il parametro orderId nel metodo Create: [AcceptsVerbs (HttpVerbs.Post)] public ActionResult Create (int orderId, raccolta FormCollection) – CoderDennis
Quindi l'url del modulo di creazione della visualizzazione della vista deve contenere l'ID ordine come in/Order/8/Voce/Crea – CoderDennis