一个简单的ASP.NET WebForm "Model Binder"
ASP.NET MVC 中有一个神器Model Binder,给开发带来很多便利,如果使用WebForm 开发的话,只能望洋兴叹了,不过人类是无法阻止程序猿解决问题的决心的。
废话不多说了,直接看看这个山寨版的 "Model Binder"
复杂类型使用示例
先定义几个简单的实体:
public class User { public int SysNo { get; set; } public string Name { get; set; } public bool Good { get; set; } public DateTime Birthday { get; set; } public Address Address { get; set; } public int[] Test { get; set; } public List<Order> Orders { get; set; }//不支持复杂列表类型的转换 } public class Order { public string OrderID { get; set; } } public class Address { public User User { get; set; } public int SysNo { get; set; } public string Name { get; set; } }
然后看看界面上表单的样子
看看效果
转换成功!!
如何判断用户没有输入或者转换失败呢?
很简单在Global中注册默认值
protected void Application_Start(object sender, EventArgs e) { RequestBinder.RegistDefaultValue<int>(-999999); RequestBinder.RegistDefaultValue<DateTime>(DateTime.Parse("1900/01/01")); }
上面是复杂类型,对于简单的更不在话下了,只要指定表单的Name就可以了
int sysno = RequestBinder.UpdateModel<int>("SysNO");