2014-04-29 29 views
0

我想讓我的看法工作,它是如何工作的,你可以選擇一些不同的分支,然後將用於過濾搜索結果。現在,這工作得很好,當我打的過濾器按鈕,果園尋呼機搞亂我的查詢字符串

這裏是查詢字符串

/Search?Ref=&Keyword=&StartDate=&Branches=3299374&Branches=38087&Branches=38090&Branches=38093&Branches=38095 

但是,當我點擊尋呼機的查詢字符串的變化去到另一個尋呼機這個

/Search?Branches=3299374%2C38087%2C38090%2C38093%2C38095&page=2 

如何阻止尋呼機這樣做?我認爲這是編碼我的查詢字符串,但我不是100%確定。

而且我試圖創建一個名爲Pager_Next.cshtml

@{ 
    var pBranches = Request.QueryString["branches"]; 
    var RouteValues = (object)Model.RouteValues; 
    RouteValueDictionary rvd; 
    if (RouteValues == null) { 
     rvd = new RouteValueDictionary(); 
    } 
    else { 
     rvd = RouteValues is RouteValueDictionary ? (RouteValueDictionary)RouteValues : new RouteValueDictionary(RouteValues); 
    } 
} 
<a class="newer" href="@Url.Action((string)rvd["action"], rvd)">Newer articles</a> 

的形狀視圖但是,這仍然具有相同的結果

+0

可能相關:http://stackoverflow.com/questions/11621477/using-duplicate-parameters-in-a -url。 '%2C'是一個逗號,空白參數相當於不存在的參數。 – Bobson

回答

1

只是爲了讓別人知道他們是否有這個問題。我創建了一個模型綁定,

The ModelBinder code looks like this 

    public class CommaSeparatedLongArrayModelBinder : DefaultModelBinder 
    { 
     public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
     { 
      var values = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); 
      if (values != null && !string.IsNullOrEmpty(values.AttemptedValue)) 
      { 
       // TODO: A minimum of error handling would be nice here 
       return values.AttemptedValue.Split(',').Select(x => long.Parse(x)).ToArray(); 
      } 
      return base.BindModel(controllerContext, bindingContext); 
     } 
    } 

,並在我的控制器我用這個

Binders[typeof(long[])] = new CommaSeparatedLongArrayModelBinder();