asp.net-mvc – 绑定一个包含MVC数组的QueryString
发布时间:2020-12-16 07:10:21 所属栏目:asp.Net 来源:网络整理
导读:我正在使用远程加载数据的Telerk Kendo UI网格.传递给我的action方法的QueryString如下所示: – take=10skip=0page=1pageSize=10sort[0][field]=valuesort[0][dir]=asc 我试图找出如何将sort参数绑定到我的方法?是否可以或者我需要手动枚举QueryString集合
我正在使用远程加载数据的Telerk Kendo UI网格.传递给我的action方法的QueryString如下所示: –
take=10&skip=0&page=1&pageSize=10&sort[0][field]=value&sort[0][dir]=asc 我试图找出如何将sort参数绑定到我的方法?是否可以或者我需要手动枚举QueryString集合还是创建自定义绑定器? 到目前为止,我试过这个: – public JsonResult GetAllContent(int page,int take,int pageSize,string[] sort) public JsonResult GetAllContent(int page,string sort) 但排序始终为空.有谁知道我怎么能做到这一点? 我可以回退到Request.QueryString使用,但这有点像kludge. var field = Request.QueryString["sort[0][field]"]; var dir = Request.QueryString["sort[0][dir]"]; 解决方法
您可以使用一组字典:
public ActionResult Index( int page,IDictionary<string,string>[] sort ) { sort[0]["field"] will equal "value" sort[0]["dir"] will equal "asc" ... } 然后定义自定义模型绑定器: public class SortViewModelBinder : IModelBinder { public object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { var modelName = bindingContext.ModelName; var keys = controllerContext .HttpContext .Request .Params .Keys .OfType<string>() .Where(key => key.StartsWith(modelName)); var result = new Dictionary<string,string>(); foreach (var key in keys) { var val = bindingContext.ValueProvider.GetValue(key); result[key.Replace(modelName,"").Replace("[","").Replace("]","")] = val.AttemptedValue; } return result; } } 将在Global.asax中注册: ModelBinders.Binders.Add(typeof(IDictionary<string,string>),new SortViewModelBinder()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.NET站点中将.Net 2.0与.Net 4.0混合使用
- asp.net – 在.net 3.5中使用两个值绑定下拉列表
- asp.net – 如何使用Visual Studio的内置SQL服务器?
- asp.net-mvc – 使用jquery Ajax加载PartialView?
- ASP.NET:web.config在哪里/如何缓存?
- asp.net-mvc-2 – iframe,跨域Cookie,p3p策略和safari,其中
- asp.net使用H5新特性实现异步上传的示例
- 如何从asp.net HyperLink控件调用javascript
- .net – 需要临时报告组件
- 经典ASP(或PHP等)中的ASP.NET MVC包
推荐文章
站长推荐
热点阅读