2017-08-11 30 views
0

我在這裏看到了用於保存一個字符串以傳遞到下一頁的示例。但是,我沒有能夠找到或想出如何保存多個搜索參數,而不需要每個搜索字符串的變量,這是我不想做的事情,因爲我有12個搜索字段。C#MVC保存多個搜索字符串用於分頁

我已經看到了將變量保存到viewbag的示例,然後在轉到下一頁時傳遞該示例。這適用於一個變量,但不適用於多個變量。

是否有一個更有說服力的解決方案,然後必須通過每個變量的個別視圖袋?

謝謝!

+1

你爲什麼不傳遞一個對象在viewbag你有變量性質說的嗎? ...就像是一個正在搜索字段的「Dictionary」鍵,值是變量值。 – GibralterTop

+0

在我看來,這些信息應該是ViewModel的一部分。 –

回答

0

您可以使用它class這樣的:

public class SearchField 
{ 
    public string Field1 { get; set; } 
    public int Field2 { get; set; } 
    // other fields 
} 

並保存對象ViewBag這樣的:

SearchField objSearchField = new SearchField(); 
objSearchField.Field1="value1"; 
objSearchField.Field2 = 100; 
// set other fields 
ViewBag.SearchFields = objSearchField; 
0

您可以使用viewbag或TempData的[ 「的StringID」。 tempdata可能是更好的選擇。你要做的是創建一個字符串數組(或者列表可能會更好!)並將所有信息存儲在該數組中。然後你將它存儲在tempdata中。事情是這樣的:

string[] URLs = new string[12]; 
//do stuff 
Tempdata["URLs"] = URLs; 

當你到你需要再次網址的頁面,無論是在控制器或視圖中的你會寫:

string[] URLS = (string[])Tempdata["URLs"]; 
//do stuff 

or 

string[] URLS = Tempdata["URLs"] as string[]; 

類似的東西應該工作。你應該在其他方面的ASP MVC來傳遞數據讀了起來:

http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/various-ways-to-pass-data-from-controller-to-view-in-mvc/

Passing an object array as TempData[] to view

+0

如果你認爲答案正確,請接受它。 –