2013-01-12 44 views
1

ASP.NET限制使用多於1個runat="server"表單。每頁繞過ASP.NET的一個RUNAT SERVER FORM

我有一個主頁,目前沒有形式。

我有很多其他的頁面,一些有一個窗體(Register.aspx - Login.aspx),一些沒有窗體。

我想添加一個註銷按鈕在主(在用戶登錄後)。

這是正常的,註銷按鈕應該始終在那裏。

但使用這種ASP按鈕控制器我需要在母版頁使用形式

意思是,我將無法訪問其他具有表單的頁面,因爲我將收到錯誤。

我已經有其他想法繞過這一點。

1-使用JQuery的加載一個處理器使用阿賈克斯,清除會話。

2 - 讓註銷一個鏈接它看起來像一個按鈕,點擊它加載另一個.aspx頁面中,在頁面加載方法,清除會話,然後重定向,聽起來就像是第一個。 ..

3-使它成爲一個鏈接,帶我到同一個頁面(Default.aspx的退出= 1?)< - 並檢查該參數頁面加載方法裏面,如果它的存在,明確了會議。

這些好方法嗎?有沒有更好的?

+0

我將用第二種方法去,與重定向到它清除會話和所有頁面,但我不認爲這還不夠好,任何新的辦法將不勝感激。 –

+0

你可以在沒有runat =「server」的情況下創建一個表單,然後檢查if(Request.Form [「LogoutButton」] ==「Logout」)',但只需要在主服務器中放入一個全局服務器表單就是幾乎總是最好的選擇。 – Rhumborl

回答

0

去你不需要繞過它,只是包裝整個asp:ContentPlaceHolderform runat="server"裏面,所以你必須在形式每一頁已經。

在母版頁

<form runat="server"> 
    <asp:ContentPlaceHolder id="MainBodyContent"></asp:ContentPlaceHolder> 
</form> 
1

小心解釋爲什麼你不能在你的母版頁中使用表單並使用該母版頁刪除這些頁面中的所有表單?無論如何,這是ASP.NET中最常見的模式。

如果你因爲某些原因不能做到這一點,我將與2

相關問題