在querystring参数中获取参数的Null值

时间:2013-04-11 07:06:11

标签: c# asp.net

在我的应用程序中,我发送了一个链接到用户的电子邮件ID,他可以点击此链接下载软件....现在我的网址看起来像.... http://www.abc.co.in/Download.aspx?period=11/04/2013%2012:29:20%20PM&ProductName=Otja 我在pageload download.aspx页面上重新获取此值的代码是

    string PName = Request.QueryString["ProductName"] as string;



    string myDate = Request.QueryString["period"];
    if (!String.IsNullOrEmpty(myDate))
    {
        myDate = myDate.Replace("!", ":");
    }
    DateTime dt1 = Convert.ToDateTime(myDate);
    DateTime dt2 = DateTime.Now;
    TimeSpan variable = dt2 - dt1;
    if (variable.TotalMinutes > 5)
    {
        //Response.Write("Download time is expired now");
        lblmsg.Visible = true;
        lblmsg.Text = "Download time is expired now";
    }
    else
    {

        lblmsg.Visible = true;
        lblmsg.Text = "U can Still Download";
    }

但这不起作用我测试过,在5分钟之前和分钟之后它只显示“你仍然可以下载”所以我认为我的错误是我无法在此download.aspx上查询querystring上的productname和period值page..please帮帮我..谢谢 我认为应该有错误......字符串未被识别为有效的DateTime。这就是为什么它传递空值所以任何解决方案???

1 个答案:

答案 0 :(得分:1)

您说您认为您的代码无法检索查询参数。为什么不首先打印这些值来确认。

Request.QueryString()看起来是正确的。

您的逻辑可能存在问题,可能会导致执行其他操作。

根据您提供的更多信息,请尝试此操作 -

变量myDate值必须为“11-04-2013 06 36”。请确认。

而不是Convert.ToDateTime(myDate);试试这个

DateTime.ParseExact(myDate, "dd-MM-yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);