Controller.TryUpdateModel<TModel> Method (TModel, String)

Updates the specified model instance using values from the controller's current value provider and a prefix.

Namespace:  System.Web.Mvc
Assembly:  System.Web.Mvc (in System.Web.Mvc.dll)

Syntax

'Declaration
Protected Friend Function TryUpdateModel(Of TModel As Class) ( _
    model As TModel, _
    prefix As String _
) As Boolean
protected internal bool TryUpdateModel<TModel>(
    TModel model,
    string prefix
)
where TModel : class
protected public:
generic<typename TModel>
where TModel : ref class
bool TryUpdateModel(
    TModel model, 
    String^ prefix
)

Type Parameters

  • TModel
    The type of the model object.

Parameters

  • model
    Type: TModel
    The model instance to update.
  • prefix
    Type: System.String
    The prefix to use when looking up values in the value provider.

Return Value

Type: System.Boolean
true if the update is successful; otherwise, false.

Exceptions

Exception Condition
ArgumentNullException

The model parameter or the ValueProvider property is null reference (Nothing in Visual Basic).

Remarks

You do not have to explicitly specify the generic parameter TModel. Instead, you can let the C# or Visual Basic type inference engine determine the generic parameter TModel by omitting it.

The TryUpdateModel method is like the UpdateModel method except that the TryUpdateModel method does not throw an InvalidOperationException exception if the updated model state is not valid.

Security noteSecurity Note

Use one of the TryUpdateModel 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 TryUpdateModel 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.

See Also

Reference

Controller Class

TryUpdateModel Overload

System.Web.Mvc Namespace