Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there some way to use @Html.HiddenFor for complete model?

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!

like image 806
jperez Avatar asked Nov 01 '11 10:11

jperez


People also ask

What is html HiddenFor used for?

HiddenFor() Returns an HTML hidden input element for each property in the object that is represented by the specified expression.

How do you get the hidden field value in razor view?

The value of the Hidden Field created using Html. HiddenFor helper function is read using Model class object while the value of Hidden Field created using Html. Hidden helper function is read using Request. Form collection in ASP.Net MVC Razor.

What is html DisplayFor?

DisplayFor() The DisplayFor() helper method is a strongly typed extension method. It generates a html string for the model object property specified using a lambda expression.

What is hidden field in MVC?

Here we will learn how to create or use hidden fields in asp.net mvc with a simple example using HTML helpers. Before going in-depth, let's understand the definition of hidden fields. The hidden fields are controls that allow us to store data or information on a page without displaying it.


2 Answers

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; }
}
like image 181
Haythem Tlili Avatar answered Sep 28 '22 07:09

Haythem Tlili


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.

like image 20
Darin Dimitrov Avatar answered Sep 28 '22 06:09

Darin Dimitrov