注意人们在搜索等过程中遇到的问题-可以接受的答案不是我最终这样做的方式-但是我将其保留为接受,因为它在某些情况下可能有用。 我自己的答案包含了我使用的最终解决方案,该解决方案是可重用的,并且将适用于任何项目。也已确认它可以在MVC框架的v3和v4中使用。我具有以下模型类型(已更改类的名称及其属性以保护其标识):public class MyExampleModel{ public string[] LongPropertyName { get; set; }}然后,此属性绑定到一堆(> 150)复选框,其中每个人的输入名称当然是LongPropertyName。表单使用HTTP GET提交到url,并说用户选择了其中三个复选框-url将具有查询字符串 ?LongPropertyName=a&LongPropertyName=b&LongPropertyName=c然后最大的问题是,如果我选中所有(或什至只是一半以上!)复选框,我将超过IIS上的请求过滤器强制执行的最大查询字符串长度!我不想扩展它-所以我想一种减少这个查询字符串的方法(我知道我可以切换到POST-但即使如此,我仍然想最小化客户端发送的数据中的绒毛数量) 。我想做的是将LongPropertyName绑定简单地定为“ L”,这样查询字符串将变为?L=a&L=b&L=c但不更改代码中的属性名称。有问题的类型已经有一个自定义模型绑定程序(从DefaultModelBinder派生),但已附加到其基类上-因此,我不想在其中放置派生类的代码。当前,所有属性绑定均由标准DefaultModelBinder逻辑执行,我知道该逻辑使用System.ComponentModel中的TypeDescriptors和Property Descriptors等。我有点希望可以有一个属性可以应用到该属性以使其正常工作-存在吗?还是我应该考虑实施ICustomTypeDescriptor?
3 回答
- 3 回答
- 0 关注
- 666 浏览
添加回答
举报
0/150
提交
取消