我的表格中有一个复选框的集合,用于在我的网站上进行精炼搜索功能。
我正在尝试以GET格式传递数组,但URL看起来像:
/search?filter=foo&filter=bar&filter=green
有没有更好的方法在MVC中传递这个?可能像
/search?filter=foo,bar,green
提前致谢。
答案 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);
}