繁体   English   中英

如何在Postback上维护UI元素状态? (ASP.NET MVC)

[英]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的用户。

http://plugins.jquery.com/project/Cookie

如果用户代理支持它(大多数情况下),你可以使用localStorage如果不支持,则可以回退到cookie甚至是会话(假设你的范围是正常的,用户的UI状态保存在单个机器级别而不是保持跨多个设备使用状态)。 我有一篇文章介绍如何在MVC 3中使用Modernizr来检查localStorage支持并从中保存/检索。
了解如何使用ASP.NET MVC3工具更新中的Modernizr通过HTML5 localStorage存储用户数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM