[英]How to maintain UI element state on Postback? (ASP.NET MVC)
所以我计划创建一个包含许多可动画UI元素的复杂页面。 我想想出一个干净的方法来维护这些可动画UI元素的状态(展开/折叠,突出显示等)。 我有一些想法,但我只是想知道是否有人知道这样做的js框架,所以我不重新发明轮子。
编辑
到目前为止我的想法是:
1)在表单帖子上,获取每个UI元素的状态并将其添加到POST数据。 我正在考虑使用一个特殊的CSS类(一种用于跟踪的注册)来标记我想要跟踪状态的所有UI元素,并且每个都支持一些回调,这将允许我以多态方式获取其状态(每个UI元素)有它自己对状态的理解,例如扩展,选定的索引,突出显示等)
2)为我的UI元素创建HtmlHelpers,它可以识别从客户端发送的状态信息,并以正确的状态输出UI元素的html(我更喜欢在服务器端设置状态而不是让js在整个地方弹出东西在客户端恢复状态......对吗?)
3)不像WebControls或ViewState那样复杂或臃肿
是否有一个框架可以做到这样的事情并且做得更好,如果没有,我提出的框架听起来是个好主意吗?
我猜KnockoutJS可能会对你有所帮助,因为你可以整合它上面的所有数据/状态管理逻辑,然后按你喜欢的方式保存它,即使用.toJSON()
函数并将其发送到服务器。
也许您可以将它与@ Schwarty的localStorage解决方案集成?
我过去做过类似的事情并使用了jQuery cookie插件。 这可能是一个可行的选择,它只取决于您需要多长时间来维护状态,以及您是否可以依赖启用了Cookie的用户。
如果用户代理支持它(大多数情况下),你可以使用localStorage
如果不支持,则可以回退到cookie甚至是会话(假设你的范围是正常的,用户的UI状态保存在单个机器级别而不是保持跨多个设备使用状态)。 我有一篇文章介绍如何在MVC 3中使用Modernizr
来检查localStorage
支持并从中保存/检索。
了解如何使用ASP.NET MVC3工具更新中的Modernizr通过HTML5 localStorage存储用户数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.