2011-10-25 70 views
0

我有一個返回空值的Request.QueryString有問題。我認爲這是從的OutputCacheASP.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會返回空白,我用Debugger檢查了v變量,我發現它返回null。

爲什麼?

回答

0

如果將Request.QueryString["button"];更改爲Request.Form["button"];,您將獲得預期的輸出。這可能是因爲您的母版頁中有Form

+0

是的,但獲取字符串將不會出現在URL中......它必須像'localhost/Default.aspx?buttonvalue = One'或類似的東西 –

+0

是啊bcoz它把它當作post而不是得到 – Waqas

+0

那麼,我想用GET方法做... –