Как вернуть представление с QueryString в ASP.NET MVC 2?

Я разрабатываю веб-сайт в ASP.NET MVC 2. В какой-то момент я добираюсь до ActionResult в контроллере и, очевидно, вызываю метод

return View();  

Есть ли способ передать QueryString в свое представление или прикрепить параметры к URL-адресу?


person dani    schedule 03.12.2010    source источник


Ответы (3)


Можешь попробовать

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

Не забудьте включить это

using System.Web.Routing;

или просто вы можете попробовать это

return RedirectToAction("Index?ParamID=1234");
person Carls Jr.    schedule 03.12.2010
comment
Назовите меня сумасшедшим, но это похоже на бесконечный цикл. - person RayLoveless; 25.04.2016
comment
Вы нашли решение своей проблемы. Я пытаюсь сделать то же самое. Когда я возвращаю представление (модель), он удаляет параметр url. - person Nakres; 15.11.2016

Предполагается, что представление управляет моделью, передаваемой контроллером. Параметры строки запроса уже присутствуют, когда был сделан запрос к соответствующему действию. Итак, чтобы передать модель представления:

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

И теперь, на ваш взгляд, вы можете использовать эту модель.

Если, с другой стороны, вы не хотите возвращать представление, а перенаправлять на какое-то другое действие контроллера, вы можете:

return RedirectToAction("SomeOtherActionName", new { ParamName = "ParamValue" });
person Darin Dimitrov    schedule 03.12.2010
comment
как я могу передать модель и строку запроса? - person user3281466; 25.06.2015

Для меня я терял строку запроса в форме POST. Request.QueryString был пустым в действии поста контроллера.

Итак, я включил строку запроса в действие формы.

Есть несколько способов сделать это. Ответы перечислены здесь:

Использование Html.BeginForm со строкой запроса

Извините за ответ только по ссылке, но я не хочу дублировать работу этих ответов здесь. Кроме того, я надеюсь, что кому-то будет полезно понять, что вы можете потерять строку запроса из-за публикации формы.

person Jess    schedule 10.08.2017