1
我有一個表單,其中包含複選框的集合,用於在我的網站上進行精細搜索。ASP.NET MVC表單GET傳遞數組
我想傳遞一個形式得到一個數組,但URL的樣子:
/search?filter=foo&filter=bar&filter=green
有沒有更好的方式MVC通過這個?可能像
/search?filter=foo,bar,green
在此先感謝。
我有一個表單,其中包含複選框的集合,用於在我的網站上進行精細搜索。ASP.NET MVC表單GET傳遞數組
我想傳遞一個形式得到一個數組,但URL的樣子:
/search?filter=foo&filter=bar&filter=green
有沒有更好的方式MVC通過這個?可能像
/search?filter=foo,bar,green
在此先感謝。
現在您可以更改此URL。它由瀏覽器構建。
您可以在發送請求之前通過javascript更改URL,但更好的方法是使用後重定向獲取模式(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);
}
馬爾科姆您好,我嘗試了PRG模式,但跑了一個問題。數組得到了通過,但我得到了.../search?filter = System.String [],當我重定向到'Get'Action時。你知道爲什麼發生這種情況嗎?這是我發佈的綁定到模型的Action,然後將模型傳遞給Get Action。 public ActionResult Search(ResultsModel m){ResultsModel model = new ResultsModel {Filters = m.Filters};返回RedirectToAction(「搜索」,模型); } – creativeincode 2010-06-08 12:50:06
我更新了帖子 – 2010-06-08 12:57:59