2010-12-03 29 views
5

ich eine Website in ASP.NET MVC 2. An einem gewissen Punkt der Entwicklung, erreiche ich eine Action in einem Controller, und ich rufe offensichtlich MethodeWie wird View mit QueryString in ASP.NET MVC 2 zurückgegeben?

return View(); 

Gibt es eine Möglichkeit, dass ich Abfrage-Zeichenfolge passieren könnte in meiner Sicht oder an die URL Parameter anhängen?

Antwort

3

können Sie versuchen,

public ActionResult Index() 
{ 
    RouteValueDictionary rvd = new RouteValueDictionary(); 
    rvd.Add("ParamID", "123"); 
    return RedirectToAction("Index", "ControllerName",rvd); 
} 

dies nicht schließen Vergessen

using System.Web.Routing; 

oder einfach können Sie versuchen, diese

return RedirectToAction("Index?ParamID=1234"); 
+0

aber dann kann ich auch kein Modell passieren ... – user3281466

+1

Nenn mich verrückt, aber das sieht aus wie eine Endlosschleife. – RayLoveless

+0

haben Sie irgendeine Lösung für Ihr Problem gefunden. Ich versuche das Gleiche zu tun. Wenn ich die Ansicht (Modell) zurücksende, werden die URL-Parameter entfernt. – Nakres

8

Eine Ansicht soll das Modell manipulieren die wird vom Controller übergeben. Die Parameter der Abfragezeichenfolge sind bereits vorhanden, als die Anfrage an die entsprechende Aktion gestellt wurde. So ein Modell übergeben:

var model = new MyViewModel 
{ 
    SomeParam = "Some value" 
} 
return View(model); 

Und jetzt aus Ihrer Sicht könnten Sie dieses Modell verwenden.

Wenn auf der anderen Seite Sie nicht wollen, einen Blick zurück, sondern auf einen anderen Controller-Aktion könnten Sie umleiten:

return RedirectToAction("SomeOtherActionName", new { ParamName = "ParamValue" }); 
+4

Wie kann ich auch ein Modell sowie eine Abfragezeichenfolge übergeben? – user3281466

0

Für mich, ich war auf einem Formular POST die Query-String zu verlieren. Request.QueryString war in der Controller-Post-Aktion leer.

Also, was ich getan habe, war die Abfrage Zeichenfolge in das Formular Aktion.

Es gibt mehrere Möglichkeiten, dies zu tun. Die Antworten sind hier aufgeführt:

Using Html.BeginForm with querystring

Sorry für die Verbindung nur beantworten, aber ich will nicht die Arbeit dieser Antworten hier duplizieren. Außerdem hoffe ich, dass es hilfreich für jemanden ist zu erkennen, dass Sie die Abfragezeichenfolge durch einen Formularpost verlieren könnten.

Verwandte Themen