2

我一直有一个了解几个MVC框架(如导轨,Merb的,CakePHP的,codeignitier,和同类者...)我应该在哪里保存复杂的MVC应用程序UI状态?

所有的样品我见过基本上都是简单明了的CRUD页面,携带所有查询字符串中需要的infr和发布的字段值。

我有几个应用由经典的asp构建的某种框架构成的应用程序。

这个框架处理一些比我发现的例子更复杂的CRUD。

类似于主 - 细节,通过示例过滤,分页,排序和类似物。

我有一个控制器类,它只是一个有限状态机,通过不同的状态(如新的,浏览,过滤器,显示等),然后根据提出的事件执行相应的操作,最后检索向呼叫页面发送信息。

要做到这一点,我有几个隐藏的投入,以保持网页的状态(如电流id,过滤指标分析,订单审核规定,以前的状态,以前的事件,那么,你的想法)

怎么办你认为这将是实现这种功能的最完美的方法吗?

隐藏输入内置视图和从控制器使用? (我想这将是我在做什么,现在在CLASSI ASP等效)

-

基本上(响应tvanfosson添加),我的问题是指第三类,依赖于上下文的设置(关于其他两个类别,我同意你)我存储在隐藏字段中的信息,以将它们存储在查询字符串中,我猜当你点击“下一页”时,需要保存在查询字符串中,对吗?所以这段查询字符串会被追加到执行某种动作的每个链接中......

我不确定,使用查询字符串而不是隐藏输入的优缺点是什么?

+0

你保持什么状态,不能作为路径部分转移到URL? – Will 2009-01-14 17:32:54

回答

2

根据实际数据的特点,我使用不同的策略。喜欢的东西,比如默认页面大小,我保存在与当前登录用户关联的Preferences对象(表)中,并在需要时从那里检索。

与当前登录相关的持久设置(如页面的过滤器设置)存储在用户的会话中。通常情况下,如果用户在当前会话中设置它们,它们应该保持粘性。我认为过滤器设置和可见性就像这样。如果我筛选一个列表,远离它浏览一个特定的项目,然后回到列表中,我希望重新应用我的筛选器设置 - 所以我将它作为会话的一部分。

上下文相关设置 - 如当前的排序列或页码,使用查询参数进行控制。分页和排序控制(链接)使用适当的查询参数构建,以便在单击时“做正确的事情”并传递任何必要的查询参数以维护或更新控件的当前上下文。使用查询参数可以使用可收藏的HTTP GET,而不是POST。使用隐藏的表单参数会让用户难以保存或输入一个将他们直接带到他们想要去的URL。这对于排序可能比分页更有用,但该原则同样适用。

相关问题