2010-12-03 30 views
5

Estoy desarrollando un sitio web en ASP.NET MVC 2. En algún momento, llego a un ActionResult en un controlador y, obviamente, llamar al métodoCómo devolver View con QueryString en ASP.NET MVC 2?

return View(); 

¿Hay alguna manera, que podía pasar cadena de consulta en mi opinión o adjuntar parámetros a la URL?

Respuesta

3

Usted puede intentar

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

No se olvide de incluir este

using System.Web.Routing; 

o simplemente puede probar esta

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

pero tampoco puedo pasar un modelo ... – user3281466

+1

Llámame loco, pero esto parece un ciclo infinito. – RayLoveless

+0

ha encontrado alguna solución para su problema. Estoy intentando hacer lo mismo. Cuando devuelvo view (model), elimina el parámetro url. – Nakres

8

Una vista se supone que manipular el modelo que es pasado por el controlador. Los parámetros de cadena de consulta ya están presentes cuando se realizó la solicitud a la acción correspondiente. Así que para pasar un modelo de vista:

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

Y ahora en su vista podría utilizar este modelo.

Si por el contrario no desea volver a ver pero redirigir a alguna otra acción del controlador puede:

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

¿cómo puedo también pasar un modelo, así como una cadena de consulta? – user3281466

0

Para mí, que estaba perdiendo la cadena de consulta en un formulario POST. Request.QueryString estaba vacío en la acción de publicación del controlador.

Entonces, lo que hice fue incluir la cadena de consulta en la acción del formulario.

Hay varias formas de hacerlo. Las respuestas se enumeran aquí:

Using Html.BeginForm with querystring

Lo siento por el enlace única respuesta, pero no quieren duplicar el trabajo de estas respuestas aquí. Además, espero que sea útil para alguien darse cuenta de que podría estar perdiendo la cadena de consulta por una publicación de formulario.