2010-07-25 137 views
1

什麼是查詢字符串傳遞到另一個頁面的最佳方式,我會definitly避免像使用.......通過查詢字符串參數

<a href="Page2.aspx?WONumber=12345"> 

有什麼更好的辦法?

我在想創建一個基本類與幾個道具和更新基類?

謝謝。

+1

更好的感覺?就像這些人說的是你對上述路線安全性,一般性,你沒有強大的打字的事實,你的事實;你在多個地方定義你的參數的名字......任何「更好」的解決方案取決於什麼問題是要解決的。 – 2010-07-26 00:20:17

回答

0

您可以加密查詢參數,如果安全性是您的關心。

或者您可以使用其他持有者,例如上述的p.cambell說明(會話& cookie)。

您也可以將其存儲在數據庫中,然後讓您訪問的頁面檢索它。

只取決於您的應用需求。

我做的另一件事是使用<asp:panel>,基本上使用單個頁面,就像它是多個頁面一樣。這樣,我也可以訪問viewstate來保存我的變量。 (每當用戶點擊'下一個',或者他們點擊的任何東西來轉到下一頁時,我只隱藏他們所在的面板,並顯示他們想要轉到[可見=真/假]屬性的面板)

1

這聽起來像你想採取查詢字符串參數,並在隨後的頁面中使用它。

如果它不希望從當前頁面傳遞轉發該查詢字符串參數,也許這就是所謂的page1.aspx,無需使用其他查詢參數,你可以:

  • Session值。考慮Session["WoNumber"] = Request.QueryString["WONumber"].ToString();

  • 將值存儲在Cookies中。你可以使用類似:Response.Cookies["WoNumber"].Value = Request.QueryString["WONumber"].ToString();

1

這真的取決於你從哪裏獲得價值。你可以使用UriBuilder來構建一個URL,或者如果它足夠簡單的話,字符串連接就可以(儘管你必須確保Server.UrlEncode的值)。

如果這個值是一個常量,就像你的例子所暗示的那樣,把它直接放到查詢字符串中沒有什麼問題,儘管我仍然會使用一個正確的命名常量,例如。

<a href="Page2.aspx?WONumber=<%= TheMagicOrderNumber %> 

與定義的常量隱藏代碼:

protected const int TheMagicOrderNumber = 12345 
1

如果你的反對意見是「神奇字符串」 URL中的可維護性,你準備使用按鈕,而不是一個錨,你可以做得更差

<form method="GET" action="Page2.aspx"> 
    <input type="hidden" name="WONumber" value="12345" /> 
    <input type="submit" value="Navigate" /> 
</form> 

這種方法將推廣到任何複雜的任意數量的參數的查詢字符串。

1

有前我碰到了幾個月出現了大文章的時候我一直在尋找與查詢字符串增強的安全性......

http://devcity.net/Articles/47/1/encrypt_querystring.aspx

這是一個很好的文章,並有獎金筆者報價C#和VB.NET中的代碼示例。

有些時候,我更喜歡在會話中使用查詢字符串...少量的會話對象可以,但太多了,開始變得有點繁瑣的調試問題。