2017-08-11 8 views
0

Ich habe hier Beispiele zum Speichern einer Zeichenfolge zum Übergeben auf die nächste Seite gesehen. Aber ich konnte nicht herausfinden oder herausfinden, wie man mehrere Suchparameter speichert, ohne eine Variable für jeden Suchstring zu benötigen, was ich lieber nicht tun würde, da ich 12 Suchfelder habe.C# MVC Speichern mehrerer Suchzeichenfolgen für die Seitennummerierung

Ich habe Beispiele mit dem Speichern Ihrer Variablen in einem Viewbag gesehen und dann übergeben, wenn Sie auf die nächste Seite gehen. Das funktioniert für die eine Variable, aber nicht für mehrere.

Gibt es eine eloquentere Lösung, um dann für jede Variable individuelle Ansichtsbeutel zu übergeben?

Danke!

+1

Warum Sie nicht ein Objekt in der viewbag mit dem mit Variablen als Eigenschaften übergeben? ... Wie ein 'Dictionary'-Schlüssel ist Suchfeld, Wert ist variabler Wert. – GibralterTop

+0

Es scheint mir, dass die Informationen Teil des ViewModel sein sollten. –

Antwort

0

Sie können eine class für sie wie folgt verwenden:

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

Und Objekt ViewBag wie folgt speichern:

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

Sie viewbag oder TempData verwenden können [ "stringID"]. Tempdata könnte hier eine bessere Wahl sein. Was Sie tun werden, ist ein Array von Strings erstellen (oder eine Liste könnte sogar noch besser sein!) Und speichern Sie alle Ihre Informationen in diesem Array. Dann speichern Sie es auf Tempdata. Etwas wie folgt aus:

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

Wenn Sie auf die Seite, die URLs müssen erhalten wieder, entweder in der Steuerung oder in der Ansicht, die Sie schreiben wird:

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

or 

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

So etwas sollte funktionieren. Sie sollten auf den anderen Arten lesen, um Daten in ASP MVC übergeben:

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

Wenn Sie die Antwort richtig betrachten, akzeptieren Sie sie bitte. –

Verwandte Themen