ASP.NET中的Request.QueryString和OutputCache

时间:2011-10-25 06:20:52

标签: c# asp.net

我有一个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。

为什么?

1 个答案:

答案 0 :(得分:0)

如果您将Request.QueryString["button"];更改为Request.Form["button"];,您将获得预期的输出。这可能是因为您的母版页中有Form