Я разрабатываю веб-сайт в ASP.NET MVC 2. В какой-то момент я добираюсь до ActionResult в контроллере и, очевидно, вызываю метод
return View();
Есть ли способ передать QueryString в свое представление или прикрепить параметры к URL-адресу?
Я разрабатываю веб-сайт в ASP.NET MVC 2. В какой-то момент я добираюсь до ActionResult в контроллере и, очевидно, вызываю метод
return View();
Есть ли способ передать QueryString в свое представление или прикрепить параметры к URL-адресу?
Можешь попробовать
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");
Предполагается, что представление управляет моделью, передаваемой контроллером. Параметры строки запроса уже присутствуют, когда был сделан запрос к соответствующему действию. Итак, чтобы передать модель представления:
var model = new MyViewModel
{
SomeParam = "Some value"
}
return View(model);
И теперь, на ваш взгляд, вы можете использовать эту модель.
Если, с другой стороны, вы не хотите возвращать представление, а перенаправлять на какое-то другое действие контроллера, вы можете:
return RedirectToAction("SomeOtherActionName", new { ParamName = "ParamValue" });
Для меня я терял строку запроса в форме POST. Request.QueryString
был пустым в действии поста контроллера.
Итак, я включил строку запроса в действие формы.
Есть несколько способов сделать это. Ответы перечислены здесь:
Использование Html.BeginForm со строкой запроса
Извините за ответ только по ссылке, но я не хочу дублировать работу этих ответов здесь. Кроме того, я надеюсь, что кому-то будет полезно понять, что вы можете потерять строку запроса из-за публикации формы.