2011-01-14 19 views
0

我在编辑可变长度列表并使用ViewData传递填充DropDownList的信息。我使用这里描述的方法来编辑这些列表: http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/编辑可变长度列表时保留ViewData

此dropdownlist的数据来自数据库。由于ViewData在请求中不可用,因此我现在每次都会对数据库执行新的查询。当ModelState无效并且表单重新显示时,也会发生这种情况。当然,即使对于轻量级查询,这也不是那么理想。

只要用户使用该可变长度列表编辑页面,如何跨越请求保留来自该查询的信息?

回答

0

如果列表对于用户是唯一的,则可以将其存储在Session中。如果它在所有用户中共享,则可以将其存储在Cache中。无论哪种情况,存储的列表都可以并将过期,因此您必须准备好重新查询它。

+0

我从来没有使用过会话环境。我怎么知道我是否需要重新查询?我只是从会话中访问数据,但我如何知道View中有些数据不再可用? – Pieter 2011-01-17 09:24:42