Ich zeige eine Liste von Elementen für eine bestimmte Bestellung an. Wenn ein Nutzer auf "Objekt hinzufügen" klickt, leite ich auf die Seite "Artikel/Erstellen" um. Diese Seite sammelt die notwendige Eingabe, muss aber auch die Bestell-ID kennen, zu der das Element gehört. Was ist die geeignete Methode, um die Bestell-ID an den Artikel/Erstellen zu übergeben, damit sie den Formular-Post überlebt, wenn der neu erstellte Artikel gespeichert wird?ASP.NET MVC Erstellen einer Master-Detail-Beziehung
Ich habe mit TempData gespielt und schreibe die ID auf der Detailseite über Html.Encode(). Es bringt mich einen Teil des Weges dahin, dass die ID auf dem Gegenstandsformular erscheint, aber der Wert ist verloren, wenn das Formular vorlegt und Posten. Ich nehme an, weil es nicht Teil der Formsammlung ist. Ich rate, meine Workaround ist nicht der beste Weg und würde gerne wissen, ob jemand den richtigen Weg, dies in asp.net mvc tun kann.
Dennis - das sieht viel besser aus als meine Idee. Eine Klarstellung allerdings - wie bekomme ich die OrderId, um den Post des OrderItem Controllers zu überleben. Es scheint, dass es die Standardroute verwenden möchte, nicht die neu erstellte Route. [AcceptsVerbs (HttpVerbs.Post)] Öffentlich ActionResult Create (FormCollection-Auflistung) – etechpartner
Stellen Sie sicher, dass die OrderItems-Route vor der Standardroute aufgeführt ist. Das macht einen Unterschied. Außerdem müssen Sie den orderId-Parameter in Ihre Create-Methode einfügen: [AcceptsVerbs (HttpVerbs.Post)] public ActionResult Create (int orderId, FormCollection-Auflistung) – CoderDennis
So sollte die Formular-Post-URL Ihrer Create-Ansicht die orderId wie in/Order/8 enthalten/Artikel/Erstellen – CoderDennis