无法将值传递给ASP.NET中的其他网页(C#)

时间:2011-05-21 05:51:44

标签: c# asp.net parameter-passing webpage

public void Submit1_Click(Object sender, EventArgs E)
{
    string strheadlinesid1 = string.Empty;

    if (!IsPostBack)
    {
        if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString())))
        {
            strheadlinesid1 = Request.QueryString["folder"].ToString();

        }
    }

    string URL = "view4.aspx?value="+strheadlinesid1;

    Response.Redirect(URL);
   }

这是我正在使用的函数但是当我传递 strheadlinesid1 时,URL中的“value”变量什么都没有。为什么会发生这种情况。这种方法有什么问题。

3 个答案:

答案 0 :(得分:3)

在按钮上单击,页面将处于回发状态,您的条件将为false if (!IsPostBack),因此它不会进入块,因此该值不会分配给strheadlinesid1 < / p>

这个块

if (!IsPostBack)
{
    if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString())))
    {
        strheadlinesid1 = Request.QueryString["folder"].ToString();

    }
}

应该是

 if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString())))
    {
        strheadlinesid1 = Request.QueryString["folder"].ToString();

    }

答案 1 :(得分:2)

点击按钮是一个回发,因此strheadlinesid1将不会被分配给,并且将为空。

您需要删除对IsPostback的检查,因为按钮点击事件通常会作为回发事件执行。

public void Submit1_Click(Object sender, EventArgs E)
{
    string strheadlinesid1 = string.Empty;

    if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["folder"].ToString())))
    {
        strheadlinesid1 = Request.QueryString["folder"].ToString();
    }

    string URL = "view4.aspx?value="+strheadlinesid1;

    Response.Redirect(URL);
}

答案 2 :(得分:1)

因为按钮点击是一个回发,如果它是一个回发,读取“文件夹”查询字符串的代码不会执行?

因此“值”的值始终为空。

如果这是您想要的,请删除对!IsPostback的检查。