2012-05-24 44 views
3

我正在研究一個應用程序,它可能會有非常長的查詢字符串來維護狀態。在MVC中處理長查詢字符串的最佳方式是什麼?

我不知道什麼是在動作方法中處理這些長查詢字符串的最佳方式,因爲我最終會得到一長串參數。

最好直接從請求對象訪問查詢字符串參數還是應該繼續並創建一個具有很長參數列表的操作方法?

即需要傳遞配置參數以定製頁面的編號。所以我們可能有一個查詢字符串作爲這樣的:擺脫= 123 &投標= 456 & CID = 789 &做= AAA & BG = 333 & F = 999 & .....

 public ActionResult AvailableTimes(int rid, int bid, int cid, string did, string bg, string f......) 
     { 
      // Do stuff 
     } 

public ActionResult AvailableTimes() 
     { 
      var query = Request.Query; 
      // Do stuff 
     } 

在此先感謝。

+0

最好的選擇可能是將查詢字符串數據移動到其他位置,如Session或Profile。 – jrummell

+2

給我們一個你可能遇到的例子... – 2012-05-24 17:04:47

+0

@ edmastermind29已經更新後的例子 – ranjez

回答

5

創建一個包含查詢字符串的所有參數的類。然後在你的行爲結果中,使用對象而不是所有的參數。

public ActionResult AvailableTimes(TimeItem time) 
     { 
      // Do stuff with time 
     } 
public Class TimeItem 
{ 
    int rid { get; set; } 
    int bid { get; set; } 
    int cid { get; set; } 
    string did { get; set; } 
    string bg { get; set; } 
} 
+0

這是否回答你的問題? – Steve

+0

是的,比你@Steve – ranjez

+0

,除非你使用FormMethod.Post,這仍然會導致一個很長的查詢字符串。事實上,它會更長,因爲變量將是TimeItem.rid,TimeItem.bid,TimeItem.cid等。 – JoeBrockhaus

相關問題