为了账号安全,请及时绑定邮箱和手机立即绑定

Asp.Net MVC 2-将模型的属性绑定到其他命名值

Asp.Net MVC 2-将模型的属性绑定到其他命名值

温温酱 2019-09-21 11:20:06
注意人们在搜索等过程中遇到的问题-可以接受的答案不是我最终这样做的方式-但是我将其保留为接受,因为它在某些情况下可能有用。 我自己的答案包含了我使用的最终解决方案,该解决方案是可重用的,并且将适用于任何项目。也已确认它可以在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
提交
取消
意见反馈 帮助中心 APP下载
官方微信