这是一个非常普遍的问题,但在我的情况下,我正在使用ASP和C#。我有以下情况:跨多页传递参数
第1页:
两个HTML选择,都与班nameSelect
,surnameSelect
。当用户更改这些选择中的任何一个时,我将该值放入一个名为hfName
和hfSurname
的隐藏字段中。然后,当我点击一个可以进入详细视图的按钮时,我使用javascript生成链接并通过GET传递&name=111&surname=222
。
第2页:
我已经知道哪些参数可以在此页中传递,因此我有两个隐藏字段:hfName
和hfSurname
。我从GET中获取值,如果用户返回面包屑导航,我会将用户带回&name=111&surname=222
的上一页,这会自动将选择设置为以前的值。
正常的情况:
在正常情况第2页不会使用name
或surname
作为内容的参数,这样的参数是没有问题的。如果第2页也有两个选择,称为nameSelect
和surnameSelect
,这不是问题。用户可以在第2页上更改这些值,当我返回第1页时,可以更新这些值,例如到333
和444
。
问题:
,当我在同一时间通过的name
多个版本出现的主要问题。如果第2页是人员列表,则可能发生这种情况,因此单击一行可能需要传递name
参数(请记住这是一个示例)。这意味着如果我返回到第1页,name
值将被设置,但不是因为我从select中选择了它,而是因为我点击了第2页上的按钮。这是不正确的,因为name
参数的范围在单击按钮时该行仅在详细信息页面内(第3页)。
可能的解决方案
我想的是加入未用于内容例如参数之前一个关键字时,将第一溶液filterName
和filterSurname
。这会产生它自己的问题,因为我有时会希望name
/surname
值在内容中使用。如果我进行混音并且有时只输入filterName
和surname
,那么管理变得非常困难,因为我有许多不同名称的参数。
有没有一些真正明显的解决方案,我在这里失踪或是真的无法让系统变得比我已经做得更简单?
感谢
我会建议做的是**类(DTO对象)**并根据您的要求定义属性,然后将其作为参数传递给方法**使用** Post **而不是**获取** – 2014-09-05 08:40:13