ASP.NET MVC表单GET传递数组

时间:2010-06-08 11:01:55

标签: asp.net-mvc asp.net-mvc-2

我的表格中有一个复选框的集合,用于在我的网站上进行精炼搜索功能。

我正在尝试以GET格式传递数组,但URL看起来像:

/search?filter=foo&filter=bar&filter=green

有没有更好的方法在MVC中传递这个?可能像

/search?filter=foo,bar,green

提前致谢。

1 个答案:

答案 0 :(得分:2)

现在可以更改此URL。它由浏览器构建。

您可以在发送请求之前通过javascript更改网址,但更好的方法是使用帖子重定向获取模式(PRG)。

首先发布到控制器并重定向到您在控制器中构建的URL。这样您就可以完全控制URL。

修改

这是一个样本

public ActionResult FilterResult()
{
RouteValueDictionary searchRoute = ControllerContext.RouteData.Values;
if (searchRoute["Filter"]==null)
{
    searchRoute.Add("Filter","");
}
searchRoute["Filter"] = "filter1,filter2,filter3";

return RedirectToAction("Search", searchRoute);
}