Как вернуть View с QueryString в ASP.NET MVC 2? - PullRequest
6 голосов
/ 03 декабря 2010

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

return View();  

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

Ответы [ 3 ]

8 голосов
/ 03 декабря 2010

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

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

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

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

return RedirectToAction("SomeOtherActionName", new { ParamName = "ParamValue" });
3 голосов
/ 03 декабря 2010

Вы можете попробовать

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");
0 голосов
/ 10 августа 2017

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

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

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

Использование Html.BeginForm с querystring

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

...