有没有办法使用@ Html.HiddenFor来获得完整的模型?
问题描述:
是否有你的整个模型的方式来使用(或东西simular)有没有办法使用@ Html.HiddenFor来获得完整的模型?
@Html.HiddenFor
。
因此,而不是做这样的事情:
@Html.HiddenFor(model => Model.Person.Name)
@Html.HiddenFor(model => Model.Person.LastName)
@Html.HiddenFor(model => Model.Address.Street)
使用这样的事情(这个例子不工作)
@Html.HiddenFor(model => Model)
我已经寻找它的计算器和谷歌。 ..但没有发现任何关于它。
我需要坚持不保存到数据库的不同模型的一些值,所以只使用Html.HiddenFor ID不是我的选择。
在此先感谢!
答
选择你想成为一个隐藏的输入特性,在模型中添加HiddenInputAttribute
如下:
public class MyModel
{
[HiddenInput]
public int MyProperty { get; set; }
}
+0
@Darin&@ Haythem谢谢,我会测试这两周结束的答案! – Gyocol
答
您可以查看MVCContrib's Html.Serialize method。这是一种视图状态模拟(内部它确实使用ViewState :-))。
另一种方法是简单地将唯一标识存储为隐藏字段,并在控制器操作内部使用此标识从基础数据存储中获取相应的模型。
你不想这样做!你应该只传递实体的主键,然后将其备份到服务器端......否则客户端可以更改他们的地址等等。如果你没有将它们保存到数据库但需要它们保留,请使用会话或cookie或本地存储或其他东西 – Milney