Reputation: 1060
Is there a way to use (or something simular)
@Html.HiddenFor
for your whole model.
So instead of doing something like this:
@Html.HiddenFor(model => Model.Person.Name)
@Html.HiddenFor(model => Model.Person.LastName)
@Html.HiddenFor(model => Model.Address.Street)
use something like this (this example doesn't work)
@Html.HiddenFor(model => Model)
I've already searched for it on stackoverflow and google...but haven't found anything about it.
I need to hold on to some values for different models that aren't saved into db, so using only Html.HiddenFor the ID is not an option for me.
Thanks in advance!
Upvotes: 7
Views: 8136
Reputation: 566
Select the properties you want to be in a hidden input and add the HiddenInputAttribute
in your model as follows:
public class MyModel
{
[HiddenInput]
public int MyProperty { get; set; }
}
Upvotes: 7
Reputation: 1039548
You may take a look at the MVCContrib's Html.Serialize method. It's sorta viewstate emulation (and internally it indeed uses ViewState :-)).
An alternative approach would be to simply store an unique id as a hidden field and inside the controller action use this id to fetch the corresponding model from your underlying data store.
Upvotes: 3