我正在ASP.NET MVC 2中开发一个网站。在某些时候,我在控制器中找到一个ActionResult,我显然是在调用方法
return View();
有什么办法可以将QueryString传递给我的视图或将参数附加到URL吗?
答案 0 :(得分:8)
视图应该操纵控制器传递的模型。请求对相应的操作时,查询字符串参数已存在。所以传递一个视图模型:
var model = new MyViewModel
{
SomeParam = "Some value"
}
return View(model);
现在在您看来,您可以使用此模型。
另一方面,如果您不想返回视图,而是重定向到其他控制器操作,您可以:
return RedirectToAction("SomeOtherActionName", new { ParamName = "ParamValue" });
答案 1 :(得分: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");
答案 2 :(得分:0)
对我来说,我在表单POST上丢失了查询字符串。控制器发布操作中Request.QueryString
为空。
所以,我所做的是在表单操作中包含查询字符串。
有几种方法可以做到这一点。答案列在这里:
Using Html.BeginForm with querystring
很抱歉只有链接回答,但我不想在这里复制这些答案的工作。此外,我希望有人能够意识到您可能会通过表单帖子丢失查询字符串。