日期:2014-05-17  浏览次数:20506 次

如何判断URL网址是否有参数??
引用
先说下情况,然后再看下后台代码就能够轻易的理解题目了。
我要跳转到webtest.hedw.com页面,正常情况下应该是这样的,webtest.hedw.com?ID=111&Name=222.
但是别人直接输入网址(webtest.hedw.com),这样会报错。
因为后台代码是这样的:
/////////////////////////后台代码
if (!IsPostBack)
        {
        string UserName = Request.QueryString["ID"].ToString();
        string Password = Request.QueryString["Name"].ToString();
        }


这样就会提示“未将对象引用设置到对象的实例。”,因为他没有需要传递的参数,怎么样避免此情况,如果没有参数就返回到首页,如果存在再赋值,进行判断。

相信题目很容易理解,就不多解释了。

------解决方案--------------------
进入时赋值为空
有值再给
------解决方案--------------------
object UserName = Request.QueryString["ID"];
object Password = Request.QueryString["Name"];

没测试过,楼主试试看,主要还是NULL情况下的ToString();
------解决方案--------------------
Request.QueryString.Count

判断这个传递的参数数量 在进行判断。

或者try
{object UserName = Request.QueryString["ID"];
object Password = Request.QueryString["Name"];}
catch
{
//history.go(-1)
}
------解决方案--------------------

if( Request.QueryString["ID"]!=null &&Request.QueryString["Name"]!=null){
  string UserName = Request.QueryString["ID"].ToString();
  string Password = Request.QueryString["Name"].ToString();
}
else{
Response.Redirect("...");
}

???这样?
------解决方案--------------------

if (!IsPostBack)
  {
      try
     {
       string UserName = Request.QueryString["ID"].ToString();
       string Password = Request.QueryString["Name"].ToString();
     }
     catch(ex ce)
     {
     //跳转到首页``````
     }
   }


LZ的东西可以这样做   
  但是我是用SESSION 来判断的```````SESSION 为NULL  直接跳转`````原理差不多````
------解决方案--------------------
if (!IsPostBack)
  {
     try
     {
       string UserName = Request.QueryString["ID"].ToString();
       string Password = Request.QueryString["Name"].ToString();
     }
     catch(ex ce)
     {
     //跳转到首页``````