这是一个非常通用的问题,但就我而言,我正在使用ASP和C#。我有以下情况:
第1页:
两个html选择,包括类nameSelect
,surnameSelect
。当用户更改这些选项中的任何一个时,我将该值放在名为hfName
和hfSurname
的隐藏字段中。然后当我点击一个可以进入详细视图的按钮时,我会生成带有javascript的链接并通过GET传递&name=111&surname=222
。
第2页:
我已经知道可以在此页面上传递哪些参数,因此我有两个隐藏字段:hfName
和hfSurname
。我从GET中检索值,如果用户带着面包屑返回,我会使用&name=111&surname=222
将用户发送回上一页,这会自动将选择设置为之前的值。
正常情况:
在正常情况下,不会使用name
或surname
作为内容的参数,因此参数不是问题。如果第2页还有两个名为nameSelect
和surnameSelect
的选项,那么这不是问题。用户可以在第2页上更改这些值,当我返回到第1页时,可以更新值,例如到333
和444
。
问题:
当我必须同时传递多个name
版本时,会出现主要问题。如果第2页是人员列表,则会发生这种情况,因此单击某行可能需要传递name
参数(请记住这是一个示例)。这意味着如果我返回到第1页,将设置name
值,但不是因为我从select中选择了它,而是因为我点击了第2页上的按钮。这是不正确的,因为{{1的范围单击行中的按钮时,参数仅在详细信息页面内(第3页)。
可能的解决方案
我想到的第一个解决方案是在不用于内容的参数之前添加关键字,例如name
和filterName
。这会产生问题,因为我有时会希望在内容中使用filterSurname
/ name
值。如果我进行混合并且有时只放surname
和filterName
那么它就变得非常难以管理,因为我有许多不同名称的不同参数。
我在这里缺少一些非常明显的解决方案,或者是否真的不可能让系统变得比我已经制作的更简单?
由于
答案 0 :(得分:0)
正如评论中所提到的,我将创建一个具有默认设置的类并将其保存到会话中,然后从此处开始我将检查会话数据,如果它不存在则将其设置为新类,如果它确实使用会话中的值。
获取或发布并不重要。我只是在页面加载上有代码加载类,然后通过get或post变量更新类,然后将其保存回会话。