有没有办法使用@ Html.HiddenFor获取完整的模型?

时间:2011-11-01 10:22:35

标签: asp.net-mvc-3 html-helper

有没有办法使用(或类似的东西)

  @Html.HiddenFor 

为您的整个模型。

所以不要做这样的事情:

  @Html.HiddenFor(model => Model.Person.Name)
  @Html.HiddenFor(model => Model.Person.LastName)
  @Html.HiddenFor(model => Model.Address.Street) 

使用类似的东西(这个例子不起作用)

  @Html.HiddenFor(model => Model)

我已经在stackoverflow和google上搜索了它...但是还没有找到任何关于它的信息。

我需要为未保存到db的不同模型保留一些值,因此只使用Html.Hidden这个ID对我来说不是一个选项。

提前致谢!

2 个答案:

答案 0 :(得分:7)

选择要隐藏在输入中的属性,并在模型中添加HiddenInputAttribute,如下所示:

public class MyModel
{
    [HiddenInput]
    public int MyProperty { get; set; }
}

答案 1 :(得分:3)

您可以查看MVCContrib's Html.Serialize method。它是视图状态仿真(在内部确实使用ViewState: - ))。

另一种方法是简单地将唯一ID存储为隐藏字段,并在控制器操作内部使用此id从底层数据存储中获取相应的模型。