我正在尝试使用URL将参数从一个页面发送到另一个页面。我试图使用PostBackURL来做这个,但每当我调试我的变量在另一页上充满了垃圾。
这是我在第一页的aspx代码:
<asp:LinkButton ID="LinkButton1" PostBackUrl="~/ReportingMergeCheck/Report.aspx?DateStamp='DateStamp'ReportSourceID='ReportSourceID'" runat="server">
现在我试图在Report页面上捕获DateStamp和ReportSourceID。使用c#代码执行此操作:
string ADate = Request.QueryString["DateStamp"];
int MYID = Convert.ToInt32(Request.QueryString["ReportSourceID"]);
遗憾的是它没有填写日期或ID。有什么想法吗?
答案 0 :(得分:2)
你错过了一个&符号:
<asp:LinkButton ID="LinkButton1" PostBackUrl="~/ReportingMergeCheck/Report.aspx?DateStamp='DateStamp'&ReportSourceID='ReportSourceID'" runat="server">
答案 1 :(得分:1)
嘿,伙计们感谢所有的帮助,并特别向Gregs发帖,这真的帮助我找到了正确的答案。所以问题当然是我的PostBackURL的格式,最后这是有效的字符串。
PostBackUrl='<%# "~/ReportingMergeCheck/Report.aspx?DateStamp=" + Eval("DateStamp","{0:MM/dd/yyyy}") + "&ReportSourceID=" + Eval("ReportSourceID") %>'
对于那些在未来遇到同样问题的人来说,它有一个格式化的日期,谢谢大家!
答案 2 :(得分:0)
尝试这个
<asp:LinkButton ID="LinkButton1" PostBackUrl="~/ReportingMergeCheck/Report.aspx?DateStamp=DateStamp&ReportSourceID=ReportSourceID" runat="server">
答案 3 :(得分:0)
你真的没有问题,你的问题源于印刷错误。没有&符号(&
)。这实际上用于分隔不同的参数。
<asp:LinkButton id="lbExample" runat="server" OnClick="lbExample_Click" />
我在这里使用普通事件,而不是你的方法,所以我可以使用服务器以我想要的方式构建数据。
protected void lbExample_Click(object sender, EventArgs e)
{
// Parse any Command Arguments, or anything else to build URL.
var url = String.Format("~/Example?id={0}&report={1}", id, report);
Response.Redirect(url);
}
因此,您会注意到?
表示查询字符串参数的开头,&
会添加更多参数。在您重定向的新页面上,从集合中提取数据时不应该有任何问题:
var id = Request["id"];
你不应该有任何特殊的斜线,这些斜线可能是由于错误的逃逸或数据传递造成的。
如果您遵循当前方法,请从参数中删除'
,因为这将修改类型。你应该做到:
<asp:LinkButton id="lbExample" runat="server" PostBackUrl="
~/ReportingMergeCheck/Report.aspx?DateStamp=DateStamp&ReportSourceID=ReportSourceID" />