2011-01-12 12 views
1

Betrachten Sie das folgende Modell:ASP.NET MVC - Verwenden der Modelleigenschaft als Formular, wie kann ich zur Aktion posten?

public class BandProfileModel 
{ 
    public BandModel Band { get; set; } 
    public IEnumerable<Relationship> Requests { get; set; } 
} 

und die folgende Form:

<% using (Html.BeginForm()) { %> 
    <%: Html.EditorFor(m => m.Band) %> 
    <input type="submit" value="Save Band" /> 
<% } %> 

, die Beiträge an die folgenden Aktion:

public ActionResult EditPost(BandProfileModel m, string band) 
{ 
    // stuff is done here, but m is null? 

    return View(m); 
} 

Grundsätzlich sind nur eine Eigenschaft auf meinem Modell haben das wird in der Form verwendet. Die andere Eigenschaft in BandProfleModel wird nur in der Benutzeroberfläche für andere Daten verwendet. Ich versuche, nur die Band-Eigenschaft zu aktualisieren, aber für jeden Beitrag ist das Argument "m" immer Null (speziell die .Band-Eigenschaft ist null).

Es ist gut für die Aktion, also ist es kein Problem mit meiner Route. Nur die Daten sind null.

Die ID und Name Attribute der Felder sind BAND_whatever und Band.whatever (was auch immer eine Eigenschaft von Band zu sein), so ist es, wie es scheint ...

Was

funktionieren würde, mache ich falsch? Wie kann ich nur eine Eigenschaft als Teil eines Formulars verwenden, zurück posten und Werte über den Modellbinder für meine BandProfileModel-Eigenschaft in der Aktion angeben? Vielen Dank.

Antwort

1

Sie erstellen Editoren für Band, das vom Typ BandModel ist, aber in Ihrer Aktion ein BandProfileModel erwartet. Akzeptieren Sie ein BandModel in Ihrer EditPost-Aktion. Oder erstellen Sie Editoren für das BandProfileModel.

1

Vergesst. Es war aufgrund dieses "Band" String-Arguments. Es war verwirrend. Ich habe das geändert und es funktioniert.

Verwandte Themen