在我的应用程序中,我发送了一个链接到用户的电子邮件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。这就是为什么它传递空值所以任何解决方案???
答案 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);