Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当请求参数不存在时,如何处理请求?_C#_Asp.net - Fatal编程技术网

C# 当请求参数不存在时,如何处理请求?

C# 当请求参数不存在时,如何处理请求?,c#,asp.net,C#,Asp.net,我通过url发送id,然后通过“请求”将其从一个页面重定向到另一个页面。我的问题是,有两种方法可以进入页面 正在浏览将向您发送url中id的链接。(本工程) 直接进入页面,因此不带任何id。(这不会导致错误) 异常详细信息:System.InvalidOperationException:Nullable对象 必须有一个值 当您被重定向到场景1和场景2中时,链接的外观如何 1. http://localhost/red/time/time.aspx?id=154 2. http://local

我通过url发送id,然后通过“请求”将其从一个页面重定向到另一个页面。我的问题是,有两种方法可以进入页面

  • 正在浏览将向您发送url中id的链接。(本工程)
  • 直接进入页面,因此不带任何id。(这不会导致错误)
  • 异常详细信息:System.InvalidOperationException:Nullable对象 必须有一个值

    当您被重定向到场景1和场景2中时,链接的外观如何

    1. http://localhost/red/time/time.aspx?id=154
    
    2. http://localhost/red/time/
    
        if (!IsPostBack)
        {
    
            //Bladdra(4, 0);
            txtTidrapportnr.Text = Request["id"];
    
            if (Request != null)
            {
                Hamta(General.ToInt(txtTidrapportnr.Text).Value);
                Visa();
                btnNy.Focus();
            }
            else
            {
                Bladdra(4, 0);
                Visa();
                btnNy.Focus();
            }
    
    
        }
    
    我的问题是如何让页面在场景1和场景2中都工作。好像

    if(请求!=null)


    不正确。

    您做了一件错误的事情,即在检查空值之前,您试图用文本框值为其赋值,正确的方法如下:

    if (!IsPostBack)
        {
    
            //Bladdra(4, 0);
            //txtTidrapportnr.Text = Request["id"];
    
            if (Request["id"] != null)
            {
                txtTidrapportnr.Text =Convert.ToString(Request["id"]);
    
                Hamta(General.ToInt(txtTidrapportnr.Text).Value);
                Visa();
                btnNy.Focus();
            }
            else
            {
                Bladdra(4, 0);
                Visa();
                btnNy.Focus();
            }
    
    
        }
    

    如果您的页面只有在
    id
    request参数时才能工作,那么您必须按照其他人的建议自己检查页面是否存在-您无法阻止页面被自动访问,因为没有任何东西可以阻止您从浏览器手动点击URL

    如果参数不存在,您应该优雅地处理它。我使用的一种典型方法是,如果URL不包含我需要的所有内容,则重定向到已知的安全页面(例如主页),但我想您也可以在页面上显示警告消息