如何根据URL动态重定向页面

时间:2014-11-17 09:22:21

标签: c# asp.net url redirect

抱歉标题不好,我真的不知道如何描述这个问题。任何建议都是受欢迎的。 我必须在一个大的asp.net项目(c#)中实现它: - 用户在浏览器中输入一些URL,应采用以下格式:

http://servername/directory/M1234N/2         

其中M1234N和2是根据用户需求可能不同的一些示例值。 根据这两个值,页面应重定向到另一个页面。基本上,程序应该从URL中提取这两个值,并根据它计算重定向的位置。 这甚至可能吗? 谢谢! PS对不起的帖子和标题不好意思,随时随地纠正我

2 个答案:

答案 0 :(得分:3)

是的,有可能。最初,您必须从查询中读取这些值。为此,您应该阅读网址

string url = HttpContext.Current.Request.Url.AbsoluteUri;

然后你必须根据"/"分割它。

string[] splittedUrl = text.Split('/').ToArray();

通过这种方式,您将获得一个数组,其最后两个元素将是您想要的:

string val1 = splittedUrl[splittedUrl.Length-1];
string val2 = splittedUrl[splittedUrl.Length-2];

现在基于val1val2您可以找到要重定向用户的页面,您可以像在其他任何情况下一样重定向它。

答案 1 :(得分:0)

使用此方法。

  1. 将global.asax文件添加到项目
  2. 将此方法添加到global.asax ile

      void Application_BeginRequest(object sender, EventArgs e)
    
    {
    
                string para2;
    
                string para1;
    
                string CurrentPath = Request.Path.ToLower();
    
            if (CurrentPath.Contains("http://servername/directory"))
            {
    
                //Get the two parameters from the url, here i am assuming that directory is static 
                //If not then you can change below two line for getting the passed parameters from url.
                //I think it is easy task just use some string functions         
                para2 = CurrentPath.Substring(CurrentPath.LastIndexOf("/"));
                para1 = CurrentPath.Substring(CurrentPath.IndexOf("directory"), CurrentPath.LastIndexOf("/"));      
                //Now work on these parameters and calculate the redirect page.
    
                //Replcing the httpcontext with new page
                HttpContext MyContext = HttpContext.Current;
                MyContext.RewritePath("path of your new page according calculations");
            }
        }
    
      

    在此方法中,将为每个请求调用应用程序beginRequest。并且您将处理当前URL。