ajax post提交空字符串(string.Empty) MVC接收为null的问题
2024-09-22 03:45:14
ajax post提交空字符串(string.Empty) MVC接收为null的问题
这个问题查了好多资料才知道原因:
if (bindingContext.ModelMetadata.ConvertEmptyStringToNull && Object.Equals(value, String.Empty)) { return null; }
当Model的元数据ConvertEmptyStringToNull为true,并且form的值为空字串时,返回null.
解决方法:
1、给对应的属性加上特性
[DisplayFormat(ConvertEmptyStringToNull = false)]
2、覆写模型创建元数据的方法,
public class EmptyStringDataAnnotationsModelMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
{
var modelMetadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
modelMetadata.ConvertEmptyStringToNull = false;
return modelMetadata;
}
}
并在Global.asax文件中进行设置
ModelMetadataProviders.Current = new EmptyStringDataAnnotationsModelMetadataProvider();
参考文章:
1、https://stackoverflow.com/questions/12734083/string-empty-converted-to-null-when-passing-json-object-to-mvc-controller
2、https://www.cnblogs.com/lonelyxmas/p/5558885.html
最新文章
- linux Mint截图软件 Shutter
- [转]centos6.6 rpm安装与管理
- input只读属性区别
- Adobe Illustrator里使用fontawesome矢量图标
- SQL Server安装完成后3个需要立即修改的配置选项(转载)
- 使用Thread类可以创建和控制线程
- Mac OS X 系统目录结构
- Java开发者工具
- 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布
- 浅析Java中的final关键字(转)
- python修炼6
- 深入浅出数据结构C语言版(17)——希尔排序
- SSH框架项目开发命名规范
- JAVA中Sql时间格式与util时间格式转换
- python连接mysql数据库读取数据
- java锁——wait,notify,synchronized
- Database学习 - mysql 数据库 索引
- 使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
- kafka监控工具之一--kafka-manager
- pygame精灵类实现房子爆炸效果