我有一个Request.QueryString的问题,它返回一个空值。我认为这是来自OutputCache
我有Default.aspx(带主文件)
<%@ OutputCache Duration="60" VaryByParam="button" %>
<script runat="server">
protected void Page_Load( object sender, EventArgs e ) {
TimeMsg.Text = DateTime.Now.ToString( "G" );
string v = Request.QueryString["button"];
PageName.Text = v;
}
</script>
<form method="get" action="Default.aspx">
<h5>Click a button</h5>
<input type="submit" name="button" value="One" />
<input type="submit" name="button" value="Two" />
<input type="submit" name="button" value="Three" />
</form>
<p>Page generated at : <asp:Label ID="TimeMsg" runat="server"></asp:Label></p>
<p>Page name : <asp:Label ID="PageName" runat="server"></asp:Label></p>
我不再写<asp:Content ID='' ...></asp>
标签。
当我按下其中一个按钮时,PageName返回空,我用调试器检查了v
变量,我看到它返回null。
为什么?
答案 0 :(得分:0)
如果您将Request.QueryString["button"];
更改为Request.Form["button"];
,您将获得预期的输出。这可能是因为您的母版页中有Form
。