2011-03-31 74 views
3

我有一個網站設置爲不時驗證用戶。每次驗證用戶時,用戶都會重定向到登錄頁面,這是IIS下的另一個Web應用程序。由於用戶仍然有效,它將被重定向回來,但在此期間它已經丟失了回發數據,從而使整個表單被設置爲默認值。是否可以在ASP.NET webforms中使用get而不是post?

我首先想到的是僅僅關閉取景狀態下的表格上,並使用獲得的,而不是職位上的表單標籤

<form runat="server" method="get" enableviewstate="false">...</form> 

GET命令的作品,但查詢字符串獲取視圖狀態印刷製作網址要長。有一些容易解決這個問題嗎?基本上我想要做的是完全關閉視圖狀態,我試圖使用enableviewstate,但我無法讓它消失。

回答

2

可以使用格蘭特的建議禁用整個應用程序的視圖狀態。或者,您可以關閉頁面聲明中的單個頁面。例如:

<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="false" EnableSessionState="ReadOnly" %> 
2

你有沒有嘗試設置web.config文件中的EnableViewState屬性,所以你就會有東西,看起來像:

<pages enableViewState="false"> 
    .... 
</pages> 
-1

標題略有矛盾的問題,因爲它似乎是你的實際問題是,雖然你已經設置EnableViewState=False你仍然得到寫入頁面隱變量視圖狀態。

This question是沿着相同的路線,但你仍然如果你使用這兩種方法得到隱藏字段甚至寫道:

你自己的PageStatePersister:

public class EmptyStatePersister : PageStatePersister 
{ 
    public EmptyStatePersister(Page page) : base(page) { } 
    public override void Load() { } 
    public override void Save() { } 
} 

protected override PageStatePersister PageStatePersister 
{ 
    get 
    { 
     return new EmptyStatePersister(this); 
    } 
} 

自己的網頁類,鏈接的問題描述如下:

public class EmptyViewStatePage : Page 
{ 
    public override bool EnableViewState 
    { 
     get 
     { 
      return false; 
     } 
     set 
     { 
      base.EnableViewState = false; 
     } 
    } 

    protected override void SavePageStateToPersistenceMedium(object state) 
    { 

    } 

    protected override object LoadPageStateFromPersistenceMedium() 
    { 
     return null; 
    } 
} 

所以你留下了jQuery的:

<script type="text/javascript"> 
    $(document).ready(function() 
    { 
     $("#__EVENTVALIDATION").remove(); 
     $("#__VIEWSTATE").remove(); 
    }); 
</script> 
+0

我爲什麼要使用JavaScript來改變表格的方法?完全可以在form標籤中設置方法,但這並不能解決我的問題,因爲查詢字符串仍然很長。另外,我認爲你誤解了我的問題......我根本不需要任何視圖狀態,所以如果我能擺脫它,那麼GET請求就可以工作。 – 2011-03-31 12:48:51

+0

@Tomas因此,沒有傳遞迴服務器的標題或查詢字符串變量,您如何提出要發送的數據? – 2011-03-31 17:47:28

+0

我不知道我是否不清楚,或者你只是不理解我,也許是兩者的混合:)。我沒有說我不會傳回任何查詢字符串變量或標題......我要求的所有內容都是在WebForm頁面上使用get而不是post,再加上選項以省略添加到的viewstate查詢字符串現在如果我使用get,因爲'ViewState'變量存儲在窗體的隱藏字段中。當'ViewState'被添加到查詢字符串時,得到的查詢字符串變長。 – 2011-04-01 08:04:32

相關問題