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>
但这仍然有相同的结果
只是让其他人知道他们是否对此有问题。我创建了一个模型活页夹
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();