抱歉标题不好,我真的不知道如何描述这个问题。任何建议都是受欢迎的。 我必须在一个大的asp.net项目(c#)中实现它: - 用户在浏览器中输入一些URL,应采用以下格式:
http://servername/directory/M1234N/2
其中M1234N和2是根据用户需求可能不同的一些示例值。 根据这两个值,页面应重定向到另一个页面。基本上,程序应该从URL中提取这两个值,并根据它计算重定向的位置。 这甚至可能吗? 谢谢! PS对不起的帖子和标题不好意思,随时随地纠正我
答案 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];
现在基于val1
和val2
您可以找到要重定向用户的页面,您可以像在其他任何情况下一样重定向它。
答案 1 :(得分:0)
使用此方法。
将此方法添加到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。