当前位置:编程学习 > C#/ASP.NET >>

怎么获取地址栏某特定段地址

例如:http://www.test.com/test1.aspx
怎么样才能获得test1、test2...等等。。
我是做美工,要通过test来设置样式。这个要怎么弄。
能通过Request获得吗? 这个好像要有个 “=”号才行哦。
更换头像全给了。。。
--------------------编程问答-------------------- 获取url路径
根据规则去抓取
可以利用正则 --------------------编程问答--------------------

   string srcString = "{http://www.test.com/test1.aspx}";
            string regexStr = "{http://www.test.com/(?<key1>.*?)}";
            Regex r = new Regex(regexStr, RegexOptions.None);
            Match mc = r.Match(srcString);
            Response.Write(mc.Groups["key1"].Value);

--------------------编程问答-------------------- Request.RawUrl可以获取url地址,根据你的描述似乎可以取最后一个“/”后面的test1.aspx中的test1
string str = Request.RawUrl.LastIndexOf('/')[1].Split['.aspx'][0]//编码我没有验证,你自己试试 --------------------编程问答-------------------- 如果只是获得当前文件名:


XXX=System.IO.Path.GetFileName(this.Page.Request.FilePath.ToString());
--------------------编程问答-------------------- lastIndexOf取最后出现某字附的索引。。。 --------------------编程问答-------------------- 用正则

private void button7_Click(object sender, EventArgs e)
{
    string url = @"http://www.test.com/test1.aspx";
    string pattern = @"(\w+)(\.aspx)";

    Regex r = new Regex(pattern,RegexOptions.IgnoreCase);
    Match c = r.Match(url);
    if (c.Success)
    {
        Console.WriteLine("需要的数据是:" + c.Groups[1]);//注意这里是Groups[1]
    }
    else
    {
        MessageBox.Show("没有匹配项");
    }
}
--------------------编程问答--------------------

//用正则命名捕获组
private void button7_Click(object sender, EventArgs e)
{
    string url = @"http://www.test.com/test1.aspx";
    string pattern = @"(?<name>[^\/]\w+)(\.aspx)";//用命名捕获组

    Regex r = new Regex(pattern,RegexOptions.IgnoreCase);
    Match c = r.Match(url);
    if (c.Success)
    {
        Console.WriteLine("需要的数据是:" + c.Groups["name"].Value);//注意这里是
    }
    else
    {
        MessageBox.Show("没有匹配项");
    }
}
--------------------编程问答--------------------
引用 3 楼 xhbmj 的回复:
Request.RawUrl可以获取url地址,根据你的描述似乎可以取最后一个“/”后面的test1.aspx中的test1
string str = Request.RawUrl.LastIndexOf('/')[1].Split['.aspx'][0]//编码我没有验证,你自己试试


我原先的代码是:
(地址栏是:..../depti=Yellow)
               <%
                        string deptiColour = "";
                        deptiColour = Request.QueryString["depti"];
                        switch (deptiColour)
                    {
                %>
                 
                <%
                    case "Yellow":
                %>
....

(地址栏是:..../Yellow.aspx)
我套用你的改成:
                <%
                    string deptiColor = "";
                    string deptiColor = Request.RawUrl.LastIndexOf('/')[1].Split['.aspx'][0];
                    switch (deptiColor)
                    {
                %>
                 
                <%
                    case "Yellow":
                %>
...
提示(.aspx)字符文本中的字符太多;
deptiColor从复定义。。 --------------------编程问答-------------------- 各位拉大,麻烦搞简单点的,我一个做图的看着头大。
忘记说了,这个是是在asp.net的,c#的。
谢谢!! --------------------编程问答--------------------
引用 9 楼 codedesgin 的回复:
各位拉大,麻烦搞简单点的,我一个做图的看着头大。
忘记说了,这个是是在asp.net的,c#的。
谢谢!!


晕  上面只是给你举例   正则表达式是一样的  拷贝就行   你自己知道Url,用正则判断一下就OK了,这有什么复杂的?          --------------------编程问答--------------------
引用 10 楼 xrongzhen 的回复:
晕  上面只是给你举例   正则表达式是一样的  拷贝就行   你自己知道Url,用正则判断一下就OK了,这有什么复杂的?

解决了,网站用的是映射,还是用原来的方法。
谢谢各位。谢谢热心xrongzhen。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,