我成功地解析了URL,但在将字符串变量传递给方法C#时遇到了问题

本文关键字:变量 方法 字符串 遇到 问题 成功 URL | 更新日期: 2023-09-27 18:24:36

我使用这行代码返回我需要的url部分:(inedthis.aspx)

因此,如果你浏览到whatever.aspx,这行代码会以字符串形式返回"whatever":

string currentURL = this.Page.ToString().
                  Substring(4, this.Page.ToString().Substring(4).Length - 5);

我的问题是使currentURL可用于整个页面。如果我使用以下代码将其全局化(如果每次加载页面时都需要重写,我想做什么?):

public class Globals
{
    public static string currentURL = 
                 this.Page.ToString().
                    Substring(4, this.Page.ToString().Substring(4).Length - 5);
}

编译器存在关键字CCD_ 1的问题。

所以我想我的问题是:

  • 我如何创建一个字符串来存储whatever.aspx的"whatever"部分,并使其在整个项目中都可以访问,当页面加载时,它会将字符串重写到用户所在的当前页面?

    哦,放松你的回应,这里没有!

我成功地解析了URL,但在将字符串变量传递给方法C#时遇到了问题

顺便说一句,

Session是每个用户的,所以要小心。

这不是一个非常耗时的操作。我不会担心让它静止。

private string currentUrl;
public string CurrentUrl
{
    get
    {
        if (string.IsNullOrEmpty(this.currentUrl))
        {
            string page = this.Page.ToString();
            this.currentUrl = page.Substring(4, page.Substring(4).Length - 5);
        }
        return this.currentUrl;
    }
}

我会有一些继承设置:

public class MyPage : Page
{
    private string currentUrl;
    public string CurrentUrl
    {
        get
        {
            if (string.IsNullOrEmpty(this.currentUrl))
            {
                string page = this.Page.ToString();
                this.currentUrl = page.Substring(4, page.Substring(4).Length - 5);
            }
            return this.currentUrl;
        }
    }
}

然后你的页面:

public class HomePage : MyPage
{
    public void method()
    {
        Console.Write(this.CurrentUrl);
    }
}

您可以使用ViewState变量或Session变量。

ViewState["currentURL"] = currentURL;

Session["currentURL"] = currentURL;

听起来应该将其存储在会话变量中。

session["currentURL"] = this.Page.ToString().Substring(4, this.Page.ToString().Substring(4).Length - 5);

不管怎样,这取决于你打算做什么。如果你正在寻找不同的东西,你需要详细说明。