Я успешно проанализировал URL, но не смог передать строковую переменную в метод C # - PullRequest
2 голосов
/ 15 февраля 2012

Я использую эту строку кода, чтобы вернуть нужную мне часть URL: (ineedthis.aspx)

, поэтому, если вы перейдете к what.aspx, эта строка кода вернет «что угодно» в виде строки:

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);
}

, у компилятора возникла проблема с ключевым словом this.

поэтому я предполагаю, что мой вопрос таков:

  • как мне создать строку, которая хранит «что угодно» часть what.aspx исделать его доступным для всего моего проекта И когда страница загружается, она переписывает строку на любую текущую страницу, на которой находится пользователь?

    о, и не волнуйтесь в своем ответе, noob здесь!

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012
Кстати,

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);
    }
}
2 голосов
/ 15 февраля 2012

Похоже, вы должны хранить его в переменной сеанса.

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

В любом случае, в зависимости от того, что вы планируете делать. Вам нужно будет уточнить, если вы ищете что-то другое.

2 голосов
/ 15 февраля 2012

Вы можете использовать переменную ViewState или Session .

ViewState["currentURL"] = currentURL;

или

Session["currentURL"] = currentURL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...