MVC2中隐藏字段的替代方案

时间:2010-12-21 22:36:35

标签: .net asp.net-mvc-2

我有一个viewModel,它包含一个在传递给局部视图之前填充的字符串。我需要能够在发布表单时获取数据。目前我创建了一个隐藏字段并将数据绑定到它。然后在回发时我可以从表单集合中获取数据。

这不是我想要的。我更希望数据完全隐藏在视图之外。使用会话实际上不是我必须遵守的框架的选项。

我可以使用其他替代方案吗?

由于

2 个答案:

答案 0 :(得分:3)

这里需要做一些澄清:数据不是可见给用户,还是无法访问这一点很重要?

如果您想使其不可见,您可以将数据存储在Cookie中而不是隐藏字段中。当您在服务器上阅读它时,您还将cookie标记为已过期。这有点像黑客,但它会做你要求的 - 在客户端存储数据但不在标记中存储数据。

如果你想让它无法访问,你可以对它进行模糊处理(例如哈希或加密),并将其存储在隐藏字段(或cookie,如上所述)中,但是要知道由于您仍然向用户提供了部分信息,因此访问数据并非完全不可能。

如果重要的是将数据存储在用户无法以任何方式访问它的地方,但是你无法在服务器端这样做,那你就不走运了。您发送给客户端的任何内容,足够聪明的用户都可以阅读。

答案 1 :(得分:1)

保持无国籍

如果可能保持您的请求完全无状态。我会避免在会话中存储数据。我宁愿加密/混淆数据并将其放在隐藏字段/ cookie中,而不是引入状态。它会让你以后更加努力。相信我。

您能解释一下为什么需要保留这种状态吗?