es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar la cadena de consulta de la vista/URL actual a otra acción.

Quiero enviar la cadena de consulta de la URL actual a la acción, pero el valor está vacío dentro de la segunda acción.

public ActionResult Edit(string userId) // inicio de la acción
{
    try
    {
        var userID = userId.Unprotect<int>("userId");
        return View(model: person);
    }
    catch
    {
        return HttpNotFound();
    }
}

URL

http://localhost:25388/Home/Edit?userId=MsIJTy8Ea6ixr1E3xafN2SoUkHrXon3jcUMnlHPMaTZPW7XYma5Wqtkr9JGn4Ue8PImfNw%3D%3D

y el método de acción de destino es:

[HttpPost]
public ActionResult EditSubmit(string userID, Person person) // segunda acción
{
    var test = Request.QueryString;
    return RedirectToAction("Index", "Home");
}

¿Hay alguna forma de recibir las cadenas de consulta de la primera acción/URL dentro de la segunda acción?
(Me refiero a recibir el valor de userId)

userId=MsIJTy8Ea6ixr1E3xafN2SoUkHrXon3jcUMnlHPMaTZPW7XYma5Wqtkr9JGn4Ue8PImfNw%3D%3D

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, puedes recibir el valor de userId en la segunda acción incluyéndolo como parámetro en la firma de tu método HTTP POST.

    La firma de tu segundo método de acción debería ser:

    [HttpPost]
    public ActionResult EditSubmit(string userId, Person person)
    

    Al incluir “string userId” como parámetro en la firma del método, ASP.NET MVC mapeará automáticamente el valor de la cadena de consulta de “userId” de la URL a este parámetro.

    Luego, puedes utilizar el parámetro “userId” en tu método de acción de la misma manera que cualquier otro parámetro.

    Por ejemplo, podrías pasarla a la vista o utilizarla para realizar alguna lógica de negocio:

    “`csharp
    [HttpPost]
    public ActionResult EditSubmit(string userId, Person person)
    {
    // utiliza userId en tu lógica
    var userID = userId.Unprotect(“userId”);

    return RedirectToAction("Index", "Home");
    

    }
    “`

Comments are closed.