MVC将数据传递为隐藏(不在URL中,而不是隐藏的HTML)

时间:2012-07-09 06:44:12

标签: asp.net-mvc forms

我正在使用MVC 3 C#.NET。

有没有办法在页面之间传递值(两个不同的页面和不同的控制器)而不暴露URL中的值或隐藏值?是使用Session变量的最后手段吗?或者你会建议编码隐藏字段(ala ViewState样式)并将其解析到控制器吗?

我传递了几个我想要隐藏的值,因为他们可能会尝试使用这些值。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

只需在表单中使用POST和隐藏字段即可。 POST字段不会在您的URL中显示仅GET。始终尽量减少会话变量的使用,这些变量应该用于存储用户登录信息,用户设置,首选项等。

答案 1 :(得分:1)

只需将此数据保存在服务器上的某些后备存储中(可以是数据库或您正在使用的任何后备存储)。我自己不是会话的粉丝,所以我不推荐使用它。如果用户不应该看到或修改此数据,则甚至不应将此数据传递给视图。它应该留在它所属的地方=>在服务器上。

答案 2 :(得分:0)

我仍然使用隐藏字段,但将其编码为Base64,ala ViewState样式。它模糊了大多数用户的真实价值。