0

我有一个动态页面,它获取一个查询字符串并根据参数加载当前页面,URL 类似于“dynamic.aspx?p=”,p 是参数。所有页面都在同一个目录中,并且具有不同的名称,例如“关于”、“联系人”等。

问题是我如何使下一个和上一个按钮在页面之间移动而不返回所有链接所在的页面?

我想我可以使用 javascript 来获取当前页面 URL,并使用 switch-case 将 URL 分配给下一个和上一个按钮,有没有更好的方法?

我正在使用 asp.net、C# 和 javascript。

[编辑] 忘了补充说我也可以在听起来更好的代码上做这件事,因为它在服务器端运行

4

2 回答 2

1

在服务器端进行。沿着这些思路:

var strPrev="";
var strNext="";
switch(Request.QueryString["p"])
{
  case "about":
    strPrev="last";
    strNext="contact";
    break;
  case "contact":
    strPrev="about";
    strNext="last";
    break;
  case "last":
    strPrev="contact";
    strNext="about";
}

当然,有一些方法可以更简洁(数组)或使其更灵活(配置文件或数据库)。如果你想朝那个方向走,请告诉我。

更新:这是一个将页面列在数组中的解决方案:

var pages = new string[] { "about", "contact", "last" };
var index = Array.IndexOf(pages, Request.QueryString["p"]);
var previousPage = pages[(index + pages.Length - 1) % pages.Length];
var nextPage = pages[(index + 1) % pages.Length];

在此解决方案中,页面列在数组中(第 1 行)。第二行将文本表示转换为数字(零到二)。如果找不到页面Array.IndexOf将返回 -1,这表示数组的最后一项(因为环绕)。最后两行从数组中获取上一个或下一个项目,并带有环绕。

于 2013-03-20T11:17:02.723 回答
0

存储来自查询字符串的当前 pgae 值并将其存储在隐藏字段中并将上一页分配给另一个隐藏字段,有一个逻辑来执行此操作。由于导航页面将在服务器端,因此也将流程设为服务器端。这可能比在 javascript 中做容易

于 2013-03-20T10:50:38.227 回答