Benutzerdefinierte ASP.Net MVC2-Vorlagen Laden über Ajax und Modellaktualisierung

Ich habe ein Ansichtsmodell mit einer Sammlung anderer Objekte.

public ParentViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<ChildViewModel> Child { get; set; } 
}

public ChildViewModel
{
    public int Id { get; set; }
    public string FirstName { get; set; }
}

In einer meiner Ansichten übergebe ich ein ParentViewModel als Modell und verwende dann

<%: Html.EditorFor(x => x) %>

Welche ein Formular für die Eigenschaften Id und Name anzeigen.

Wenn der Benutzer auf eine Schaltfläche klickt, rufe ich über Ajax eine Aktion zum Laden in einer Teilansicht auf, die eine Auflistung von Child-Elementen enthält:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Child>>" %>
<%: Html.EditorFor(x => x) %>

, der dann die benutzerdefinierte Vorlage Child verwendet, um ein Formular für jedes übergebene Child anzuzeigen.

Das Problem, das ich habe, besteht darin, dass das von der benutzerdefinierten Child-Vorlage erstellte Formular nicht die vom DefaultModelBinder verwendeten Namenskonventionen verwendet.

die der Feldname ist (wenn von Ajax geladen):

[0].FirstName

Anstatt von

Child[0].FirstName

So die Aktion Bearbeiten in meinem Controller:

[HttpPost]
public virtual ActionResult Edit(int id, FormCollection formValues)
{
    ParentViewModel parent = new ParentViewModel();
    UpdateModel(parent);

    return View(parent);
}

aus dem übergebenen Formular ein ParentViewModel neu zu erstellen, funktioniert nicht.

Ich frage mich, wie ich das Laden in benutzerdefinierte Vorlagen über Ajax am besten bewerkstelligen und dann UpdateModel verwenden kann.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage