¿Cómo obtengo la URL de solicitud completa (incluida la cadena de consulta) en mi controlador? ¿Es una cuestión de concatenar mi URL y parámetros de forma o hay una mejor manera.Obtener URL de solicitud completa, incluidos los parámetros en el controlador
Comprobé this pregunta, pero parece no ser aplicable a MVC.
Corrígeme si me equivoco.
Parte de la información más detallada:
Mi llamada a mi SearchController.AdvancedSearch()
origina a partir de un formulario con unos 15 parámetros opcionales. Debido a la cantidad de parámetros y de ninguna manera posible (creo) de tener parámetros opcionales pasados de una manera limpia, busqué una cadena catchall que se maneje en el controlador.
Ahora quiero que mi controlador almacene su llamada en un componente breadcrumb para que cuando se hace clic en la miga pueda obtenerse exactamente el mismo resultado (con todos, pero no más, los argumentos incluidos). Para hacer esto, necesito toda la request.URL, que incluye la querystring.
En Request.RawURL
, request.URL
etc. esta cadena de consulta no está incluida. De hecho, actualmente hago una función simple.
String.Format("{0}/{1}", request.Url, request.form)
Esto me da algunos resultados raros (como los valores del botón de envío, etc.), pero funciona. Si hay sugerencias sobre cómo hacer que este no sea un hack feo, dígaselo.
Sé dónde encontrar la solicitud actual, pero parece que no puedo encontrar una URL sin procesar en ninguna parte. Todos están privados de la cadena de consulta y yo también necesito eso.
Mi controlador actualiza una colección de URL en mi componente BreadCrumb
. Por lo tanto, necesita la URL de solicitud. ¿Cómo sugieres que asuma este problema?
Heh, gracias por su respuesta, aunque esta pregunta tiene como 2 años;) Mientras tanto, dos versiones más de MVC han salido y los parámetros opcionales son más compatibles con el framework MVC, lo que hace que el problema discutible. –