URL伪静态多个不确定参数如何处理

暗尘掩月 2013-01-21 02:25:52
url 可能 为
/men.html?P1=2&P2=3&P4=1&P3=5
/men.html?P2=6&P3=7
/men.html?P1=8
/men.html?P4=9&P5=12
参数个数和参数名称都不确定 如何做URL 重写
...全文
450 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
whowhen21 2013-01-22
  • 打赏
  • 举报
回复
可以考虑通过代码来实现这种特殊的rewrite
yyl8781697 2013-01-22
  • 打赏
  • 举报
回复
引用 8 楼 winner2050 的回复:
不可能不确定的。 要不然你程序怎么接受参数? 要不然黑客修改参数就改动你程序的功能?我想你的程序没那么大灵活性。 人家商城的那么多参数都一样列出来,这不是难题。
+++ LZ,你这个设计不科学 如果参数个数不确定但是用途都一样的完全可以拼接字符串再传出来 比如html?p=1,2,3,4,5&xx=test 这样就好些多了 在url重写的时候也可以根据你的规则来写匹配
我是小李 2013-01-22
  • 打赏
  • 举报
回复
我都是以f0-fn的方式来解析伪静态页面的。 比如像你这样的页面 men.html?P1=2&P2=3&P4=1&P3=5 /men.html?P2=6&P3=7 /men.html?P1=8 /men.html?P4=9&P5=12 那就要每次都传五个参数。其中不需要的参数可以传无效的参数。如0,调整后为 men.html?P1=2&P2=3&P3=5&P4=1&P5=0 /men.html?P1=0&P2=6&P3=7&P4=0&P5=0 /men.html?P1=8&P2=0&P3=0&P4=0&P5=0 /men.html?P1=0&P2=0&P3=0&P4=9&P5=12
joyhen 2013-01-22
  • 打赏
  • 举报
回复
 /// <summary>
    /// 构建Request.QueryString
    /// </summary>
    /// <returns></returns>
    public string GetRequestQuery()
    {
        int queCout = Request.QueryString.Count;
        System.Text.StringBuilder strbu = new System.Text.StringBuilder("");
        //去掉第一个参数
        for (int i = 0; i < queCout; i++)
        {
            if (Request.QueryString.Keys[i] != null)
            {
                strbu.Append(Request.QueryString.Keys[i].ToString() + "=" + Request.QueryString[i].ToString());
                strbu.Append(i != queCout - 1 ? "&" : "");
            }
        }
        return strbu.ToString();
    }
heycoder 2013-01-21
  • 打赏
  • 举报
回复
这取决你用什么样的URL重写方式
winner2050 2013-01-21
  • 打赏
  • 举报
回复
不可能不确定的。 要不然你程序怎么接受参数? 要不然黑客修改参数就改动你程序的功能?我想你的程序没那么大灵活性。 人家商城的那么多参数都一样列出来,这不是难题。
红衣老大 2013-01-21
  • 打赏
  • 举报
回复
那你从 p1 取到 p100好了 没有的自然 就 nothing了 P1=&P2=3&P4=&P3=5
暗尘掩月 2013-01-21
  • 打赏
  • 举报
回复
不是 我现在前台链接不能以/men.html?P1=2&P2=3&P4=1&P3=5 这种形式显示 这个重写 已经搞定了 假如说我现在前台链接改成 /men/p1/2/p2/3/p4/1/p3/5.html 或者/men/p1_2_p2_3_p4_1_p3_3.html 这个 我的重写规则要怎么写 应为这个参数名称p1 都是不确定的 参数个数也不确定
gxingmin 2013-01-21
  • 打赏
  • 举报
回复
Request.QueryString就是传过来所有的参数连接在一起的串,你重定向时,把Request.QueryString加到你重定下地址后面就可以了
暗尘掩月 2013-01-21
  • 打赏
  • 举报
回复
/men.html?P1=2&P2=3&P4=1&P3=5 /men.html?P2=6&P3=7 /men.html?P1=8 /men.html?P4=9&P5=12 现在不用上面这种形式了 html后面不能再带参数
暗尘掩月 2013-01-21
  • 打赏
  • 举报
回复
那我的重写地址参数怎么处理
  • 打赏
  • 举报
回复
只将men.html重定向为men.aspx就行 那些不确定参数在pageload里取就行 foreach (var t in Request.QueryString) { if (t != null && t.ToString().Trim() != "") { Response.Write(t.ToString() + ":" + Request.QueryString[t.ToString()].Trim()); } }
gxingmin 2013-01-21
  • 打赏
  • 举报
回复
什么情况? 你先得搞清它对这些参数处理逻辑,才好url重写

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧