在用asp.net mvc 4.0做项目的时候遇到的这种情况:
情况分析:
“在填写表单的时候,有一些表单没有填写,留空,然后直接post 提交表单,action中用UpdateModel 来更新model,结果发现那些没有填写的表单字段全部变成null。”
原因分析:
项目中做了判断null不能提交更新到数据库中,所以导致一直提交不上去
后来网上查了一下找到了解决办法,我在这里分享一下,方便以后遇到这种情况的朋友可以方便解决
解决方法:
新建一个类继承DefaultModelBinder

using System.ComponentModel;
using System.Web.Mvc;
namespace CustomerWebsite.Mvc
{
public sealed class EmptyStringToNullModelBinder : DefaultModelBinder
{
protected override void SetProperty(ControllerContext controllerContext,
ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor, object value)
{
if (value == null && propertyDescriptor.PropertyType == typeof(string))
{
value = string.Empty;
}

base.SetProperty(controllerContext, bindingContext, propertyDescriptor, value);
}
}
}
然后在Global.asax的Application_Start中替换DefaultModelBinder

ModelBinders.Binders.DefaultBinder = new EmptyStringToNullModelBinder();
这样问题就可以解决了,小编也尝试进行了操作,结果成功了,希望也能帮助这方面有困扰的童鞋解决实际问题。

最新文章

  1. python---filecmp
  2. iNeedle系统之国舜项目
  3. python刷题专用函数。。
  4. poj 3281 Dining【拆点网络流】
  5. MySQL数据库分区修改【原创】
  6. python重试装饰器的简单实现
  7. Cisco Packet Tracer 6.0 实验笔记
  8. Oracle 导入、导出DMP(备份)文件
  9. parrotsec 和 kali安装系统的时候出现“executing grub-install dummy”的解决方案
  10. PLSQL developer 连接不上64位Oracle 解决办法
  11. Hive command
  12. Spring Batch框架流程的简单介绍
  13. python的垃圾回收机制【转】
  14. redis之hello
  15. USACO Section1.3
  16. 使用Qt框架开发http服务器问题的记录
  17. spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)
  18. JPA为字段设置默认值
  19. Boost scoped_ptr scoped_array 以及scoped_ptr与std::auto_ptr对比
  20. MySQL 开机自启动

热门文章

  1. Leetcode 357.计算各个位数不同的数字个数
  2. C#中类的实例是不能 获取到类中的静态方法和静态变量(Static)的,及原因
  3. zoj2112 主席树动态第k大 ( 参考资料链接)
  4. 九度oj 题目1086:最小花费
  5. 14-new和this
  6. PAT天梯赛练习题——L3-007. 天梯地图(多边权SPFA)
  7. 源码分析 脱壳神器ZjDroid工作原理
  8. Modular Production Line
  9. uva 11997 优先队列
  10. Little Bird(BZOJ 3831)