【发布时间】:2014-10-30 03:46:37
【问题描述】:
这是一个非常笼统的问题,但就我而言,我正在使用 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 值,但不是因为我从选择中选择了它,而是因为我单击了第 2 页上的按钮。这是不正确的,因为 name 参数的范围是单击行中的按钮仅在详细信息页面(第 3 页)内。
可能的解决方案
我想到的第一个解决方案是在不用于内容的参数之前添加一个关键字,例如filterName 和 filterSurname。这会产生它自己的问题,因为我有时希望在内容中使用 name / surname 值。如果我混合使用,但有时只输入filterName 和surname,那么管理起来会变得非常困难,因为我有许多不同名称的参数。
我在这里是否缺少一些非常明显的解决方案,或者真的不可能使系统比我已经制作的更简单?
谢谢
【问题讨论】:
-
我的建议是制作 class (DTO Object) 并根据您的要求定义属性,然后使用 Post将其作为参数传递给方法> 而不是获取
标签: c# asp.net parameters get parameter-passing