0

在我的应用程序中,我发送了一个指向用户电子邮件 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 页面上的查询字符串上检索该产品名称和期间值。请帮助我.. 谢谢我认为应该有错误.....字符串未被识别为有效的日期时间。这就是为什么它传递空值所以任何解决方案???

4

1 回答 1

1

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

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

您的逻辑可能存在问题,这可能会导致 else 执行。

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

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

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

DateTime.ParseExact(myDate, "dd-MM-yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);
于 2013-04-11T07:12:16.203 回答