Persisting model state in ASP.NET MVC using Serialize HTMLHelper
Posted
by shiju
on ASP.net Weblogs
See other posts from ASP.net Weblogs
or by shiju
Published on Sat, 06 Mar 2010 05:04:00 GMT
Indexed on
2010/03/07
23:16 UTC
Read the original article
Hit count: 974
ASP.NET
|ASP.NET MVC
ASP.NET MVC 2 futures assembly provides a HTML helper method Serialize that can be use for persisting your model object. The Serialize helper method will serialize the model object and will persist it in a hidden field in the HTML form. The Serialize helper is very useful when situations like you are making multi-step wizard where a single model class is using for all steps in the wizard. For each step you want to retain the model object's whole state.
The below is serializing our model object. The model object should be a Serializable class in order to work with Serialize helper method.
<% using (Html.BeginForm("Register","User")) {%>
<%= Html.Serialize("User",Model) %>
This will generate hidden field with name "user" and the value will the serialized format of our model object.
In the controller action, you can place the DeserializeAttribute in the action method parameter.
[HttpPost]
public ActionResult Register([DeserializeAttribute] User user, FormCollection userForm)
{
TryUpdateModel(user, userForm.ToValueProvider());
//To Do
}
In the above action method you will get the same model object that you serialized in your view template. We are updating the User model object with the form field values.
© ASP.net Weblogs or respective owner