zoukankan      html  css  js  c++  java
  • ajax post提交空字符串(string.Empty) MVC接收为null的问题

    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

  • 相关阅读:
    Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable
    调试bug 技巧
    调试bug 技巧
    调试bug 技巧
    调试技巧之 找准调试点
    调试技巧之 找准调试点
    调试技巧之 找准调试点
    adnroid 打包问题 :compileReleaseJavaWithJavac
    线程等待
    LinkedList源码解析(jdk1.8)
  • 原文地址:https://www.cnblogs.com/dansediao/p/8253114.html
Copyright © 2011-2022 走看看