如何在ASP.NET MVC 2中使用QueryString返回View?

时间:2010-12-03 09:59:19

标签: asp.net-mvc-2 view query-string return

我正在ASP.NET MVC 2中开发一个网站。在某些时候,我在控制器中找到一个ActionResult,我显然是在调用方法

return View();  

有什么办法可以将QueryString传递给我的视图或将参数附加到URL吗?

3 个答案:

答案 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

很抱歉只有链接回答,但我不想在这里复制这些答案的工作。此外,我希望有人能够意识到您可能会通过表单帖子丢失查询字符串。