Orchard寻呼机把我的查询字符串弄乱了

本文关键字:字符串弄 乱了 查询 我的 寻呼机 Orchard | 更新日期: 2023-09-27 18:00:39

我正在努力让我的视图正常工作,它的工作方式是你可以选择一些不同的分支,然后用来过滤搜索结果。现在,当我点击过滤器按钮时,就可以正常工作了

这是查询字符串

/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.chtml 的形状视图

@{
    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>

但这仍然有相同的结果

Orchard寻呼机把我的查询字符串弄乱了

只是让其他人知道他们是否对此有问题。我创建了一个模型活页夹

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();