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

﹥>﹥吖頭↗ 提交于 2019-12-18 05:01:19

问题


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!


回答1:


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; }
}



回答2:


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.



来源:https://stackoverflow.com/questions/7965096/is-there-some-way-to-use-html-hiddenfor-for-complete-model

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!