在回发到服务器端的MVC控制器操作中,为了维护非用户输入的MVC模型属性的数据,以下主题建议在标记视图页面上使用隐藏字段:
MVC3 - Why are navigation properties null on postback
但是对我来说,这样一个隐藏的字段只适用于原始的C#类型,如int,bool,string等。但复杂类型的属性,如用户定义的类或基本类型的集合(如List)不适用于邮件回到服务器上的隐藏字段。我的想法是否正确?
事实上,我为复杂类型属性尝试了这样一个隐藏字段,并且回发模型属性是 null 。服务器端会话对象或数据库重新查询是在服务器回发时重新填充复杂类型属性的救援。是否有其他方法可以在回发后保留复杂类型模型属性的数据?
感谢您的帮助。
更新 复杂类型属性的隐藏字段不是数据敏感的,不需要数据安全性。我需要使用某种方式而不是数据库重新查询或服务器端会话变量。因此,我不使用隐藏属性作为我的MVC模型中的复杂类型,而是使用复杂类型序列化的字符串属性。在回发后,我反序列化该隐藏属性以提供另一个属性的数据。有什么想法吗?