2015-12-29 30 views
1

我有許多管理頁面,其中用戶呈現的項目網格。網格上方有一個搜索面板,用戶可以通過多個字段進行過濾。這個控制器代碼如何變得更簡單?

當用戶點擊搜索我做了一篇文章,然後重定向到索引頁面。我相信下面的代碼可以以更好的方式完成(在某些情況下,我有多達20個過濾器字段)。

[HttpPost] 
    public ActionResult Filter(MySearchModel model) 
    { 
     var searchParams = new 
     { 
      fielda = model.FieldA, 
      fieldb = model.FieldB, 
      fieldc = model.FieldC 
     }; 

     return RedirectToAction("Index", searchParams); 
    } 

public ActionResult Index(MySearchModel model) 
{ 
//do filtering, return view etc in here 
} 

回答

1

,而不是執行一個重定向後,只需改變你原來的形式使用GET方法,直接瞄準「指數」行動。

using(Html.BeginForm("Index", null, FormMethod.Get)) 
{ 
    ... 
} 

這樣可以消除HTTP往返並完全擺脫「過濾器」動作。