2013-02-12 73 views
2

我已经阅读了大多数Q & A的SO,他们似乎都使用TempData作为重定向到“使用任何形式保存/感谢”消息的动作的问题的答案。避免TempData MVC

我知道您可以使用Cookie和会话来执行此操作。问题是我想避免会话,因此TempData只是使用会话。

所以,问题 - 如何避免重复的插入,并发送各种消息到其他操作而不依赖于Session/Cookies/Querystrings,并添加到混合隐藏字段。

感谢

回答

0

1)只有这样,才能避免重复将实际插入前先查询数据库。

2)为避免会话等,我只能想到其他方式将数据保存到数据库,并有一些用户ID连接到它。

3)我会推荐一个javascript(mvvm框架将是一个不错的选择)与ajax回发的解决方案。这不仅会阻止用户进行完整页面回发,而且还可以让您在同一时间感受到快速且快速响应的应用程序。您可以更直接地向用户发送消息,并指出错误发生的位置等等。

+0

Joakim谢谢你的理解,我明白你在用javascript/ajax做什么,但我想避免这种情况,用户关掉它。就插入方面而言,我可以检查,但更新方面会发生什么情况。是否值得重复更新一次又一次的开销,我相信必须有另一种解决方案。为了防止任何人遇到过,我很高兴知道,因为我已经阅读过文章,表示如果您使用Session/Tempdata或任何基于会话的商店进行简单任务,那么您的架构技能需要工作,因为总会有替代方案。 – AliK 2013-02-12 19:09:17

+0

在这种情况下你应该问自己的问题是“什么是简单的任务?”什么是你的主机更多的税收?点击数据库?还是实际在完整回传中传输的数据量?并考虑除了您正在关注的主要操作之外,该页面是否还有其他查询?这就是为什么将用户转移到一个页面以表明该操作已被执行而不是由于许多不同原因立即检查而成为更常见的做法。 另外JavaScript应该是一个扩展,如果用户有它禁用该页面应降级到发布 – Joakim 2013-02-13 00:52:47

+0

再次感谢。我明白了,我想你说,使用JavaScript并不是一个坏主意ajax保存等,我想简单的消息传递TempData也将工作。我想知道的主要原因是Sessions已被禁用/未被我的应用程序使用,我只有几个问题,并一直试图找到解决办法。 1)作为上面讨论的“感谢/保存”的问题,另一个是保存每个用户数据的情况下没有会话,我试图使用缓存?如果会话关闭并且负载平衡的应用程序会不会将Tempdata禁用? – AliK 2013-02-13 04:14:34