private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
   string k=Request.QueryString["right"];
   int g=int.Parse(k);
   switch(g)
   {
      case 0:
Response.Redirect("manage.aspx");
        break;
      default:
        break;
   }
}
我从另一个页面获取“right”值为“0”运行程序后出现错误:
值不能为空。参数名: String跟踪后发现
string k=Request.QueryString["right"]; //这句又循环了一次!在
if(!IsPostBack)后加一个
for(int i=0;i<1;i++)
依然无效~!!!为什么出现这个问题,怎么解决```
各位大虾指点下迷津~

解决方案 »

  1.   

    页面重复加载了,导致第二次right参数为null
    int.Parse就会有异常
    看看你程序是怎么写的
      

  2.   

    同样的代码,为什么另外一个页面运行到break;的时候,就跳出if(!ispostback)
    而上面的代码却又重新执行了一次string k=Request.QueryString["right"];
      

  3.   

    页面重复加载了,加个判断可以避免错误,为什么会重新加载页面就不知道了
    int g;
    if(Request.QueryString["right"] != null)   
    {
        g=int.Parse(Request.QueryString["right"]);
    }
    else
    {
        g="默认值";
    }