2009-06-23 21 views
2

Ich habe ein Szenario Ich möchte eine Teilansicht verwenden, aber ich habe Probleme mit der Weitergabe von Daten an den Controller. Hier ist ein grundlegendes Beispiel für das, was ich versuche zu tun.ASP.NET MVC Teilansicht mit Formular

Objekte:

  • Kunden
  • Bestellen

ein Kunde eine IList<Order> drauf hat. Ich möchte, dass die Teilansicht dem Benutzer ermöglicht, die Informationen zu bearbeiten. Ich kann die Daten anzeigen, aber wenn das Formular die Liste unter dem Customer-Objekt veröffentlicht, ist null.

Ich habe auch versucht, ein separates Formular in meiner Teilansicht zu verwenden. Wenn ich dies tun, wenn ich paramenters auf dem Controller erstellen wie, damit ich die Daten erhalten:

public ActionResult UpdateOrders(IList<Guid> id, IList<int> quantity, IList<Guid> productId) 

Aber wenn ich dies tun

public ActionResult UpdateOrders(IList<Order> orders) 

Die Liste ist null.

Wenn jemand einen besseren Vorschlag hat, wie dies zu erreichen ist, lassen Sie es mich wissen.

+0

Können Sie den HTML-Beitrag, ich denke, es würde in dieser Frage helfen – Hugoware

Antwort

2

Wie verweisen Sie auf die Felder in Ihrer Sicht? Ich denke, dass es so etwas wie sein sollte:

<input type="hidden" name="orders.Index" value="0" /> 
<input type="hidden" name="oders[0].ID" value="1" /> 
<input type="hidden" name="orders[0].productId" value="4" /> 
<input type="text" name="orders[0].quantity" value="6" /> 

<input type="hidden" name="orders.Index" value="1" /> 
<input type="hidden" name="orders[1].ID" value="2" /> 
<input type="hidden" name="orders[1].productId" value="2" /> 
<input type="text" name="orders[1].quantity" value="15" /> 

See Phil Haack Blog-Eintrag auf binding to a list für weitere Informationen.

+0

Die Felder werden von einem foreach generiert, so dass sie am Ende mit der gleichen ID und dem Namen derzeit enden. – cjibo

+0

Ihr Vorschlag führte mich zu einer Lösung. Ich musste die .index-Zeile hinzufügen, die ich vergessen habe. Nicht sicher, wofür wir noch keinen Helfer haben. – cjibo

+0

@cjibo: Vielleicht möchten Sie diesen Beitrag für Ihre Erstellung des Index betrachten ... http://stackoverflow.com/questions/5013578/create-views-for-object-properties-in-model-in-mvc- 3-Anwendung Schaut euch nämlich den Link von Steve Sandersons Blog an, der euch eine Codebasis gibt, um die Namen mit Guids zu generieren, was ganz gut funktioniert. –

Verwandte Themen