как исправить request.querystring перед загрузкой страницы - PullRequest
0 голосов
/ 04 октября 2009

Мой предыдущий вопрос: Проблема с urlrewriter: показана строка запроса?

Я занимаюсь разработкой сайта asp.net. Но есть одна проблема. Есть дублированная строка запроса, подобная этой www.domainname.com/default.aspx?Query=Value1&Query=Value2 Я использую слишком много страниц, как это Request.QueryString["Query"]. Но это возвращение Value1,Value2. Я не хочу исправлять эту проблему на слишком многих страницах. Я хочу исправить строку запроса перед загрузкой страницы. Я думаю, что Maybe напишет какую-нибудь функцию на global.asax. Но я не знаю, как это написать.

У вас есть идеи?

Ответы [ 2 ]

0 голосов
/ 19 мая 2014
    public static bool bi = false;
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            if (bi == false)
            {
                bi = true;
                Response.Redirect("MainPage.aspx?id=null");
            }
            else if (bi)
            {
                string s = Request.QueryString["id"].ToString();

                if (s != "null")
                {
                    switch (s)
                    {
                        case "News":
                            {
                                ProjectsManagment.Controls.AllNews n = new Controls.AllNews();
                                MainContentsAsp.Controls.Add(n);
                                break;
                            }
                        default:
                            break;
                    }
                }
            }
        }
    }
0 голосов
/ 04 октября 2009

Я верю Request.QueryString сама по себе только для чтения. Вы можете настроить свою собственную коллекцию, содержащую все, что вы хотите использовать:

public Dictionary<string, object> qsValues = new Dictionary<string, object>();

foreach (string key in Request.QueryString.Keys) {
    if (Request.QueryString[key].Count > 1) {
        qsValues[key] = Request.QueryString[key][0];
    }
    else {
        qsValues[key] = Request.QueryString[key];
    }
}

Или просто получить доступ к первой записи в списке значений для этого параметра строки запроса в вашем коде:

if (Request.QueryString["Query"].Count > 1) {
    queryValue = Request.QueryString[0];
}
...