Zu beachten ist auch, dass das Präfix der Reflexion helfen soll, das/die richtige(n) Feld(er) für die Aktualisierung zu finden. Wenn ich zum Beispiel eine benutzerdefinierte Klasse für meine ViewData habe, wie z.B.:
public class Customer
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
public class MyCustomViewData
{
public Customer Customer {get; set;}
public Address Address {get; set;}
public string Comment {get; set;}
}
und ich habe ein Textfeld auf meiner Seite
<%= Html.TextBox("FirstName", ViewData.Model.Customer.FirstName) %>
oder
<%= Html.TextBox("Customer.FirstName", ViewData.Model.Customer.FirstName) %>
So funktioniert's
public ActionResult Save (Formcollection form)
{
MyCustomViewData model = GetModel(); // get our model data
TryUpdateModel(model, form); // works for name="Customer.FirstName" only
TryUpdateModel(model.Customer, form) // works for name="FirstName" only
TryUpdateModel(model.Customer, "Customer", form); // works for name="Customer.FirstName" only
TryUpdateModel(model, "Customer", form) // do not work
..snip..
}