You can use this method to update the model that backs a particular view via the given controller. For example, if I have a view displaying a Foo object with property Bar populated by a textbox, I can call a method Save() on the controller and call TryUpdateModel to attempt to update the Foo.
public class Foo {
public string Bar { get; set; }
}
// ... in the controller
public ActionResult Save() {
var myFoo = new Foo();
TryUpdateModel(myFoo);
}
This will try to update the model with the given value for Bar. If the update fails validation (say, for example, that Bar was an integer and the textbox had the text "hello" in it) then TryUpdateModel will pass update the ViewData ModelState with validation errors and your view will display the validation errors.
Make sure you pay close attention to the security warning for .NET Framework 4 in the MSDN documentation:
Security Note Use one of the
[Overload:System.Web.Mvc.Controller.TryUpdateModel``1]
methods that takes either a list of
properties to include (a whitelist) or
a list of properties to exclude (a
blacklist). If no explicit whitelist
or blacklist is passed, the
[Overload:System.Web.Mvc.Controller.TryUpdateModel`1]
method tries to update every public
property in the model for which there
is a corresponding value in the
request. A malicious user could
exploit this in order to update
properties that you do not intend to
provide access to.
https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.tryupdatemodel(v=vs.100).aspx
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…