zoukankan      html  css  js  c++  java
  • .net mvc接收参数为null的解决方案

    1、通过对象接收请求数据时的null

    必须为对象的属性设置get与set

    private System.String _EMail = System.String.Empty;
            public System.String EMail
            {
                get {return _EMail;}
                set {_EMail = value;}
            }
    

      

    2、通过ajax传递的empty在对象中自动转换为null

    第一个解决方案

    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string test{get;set;}

    第二个解决方案

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace AiAn.GPS.Web.Models
    {
    //重写DataAnnotationsModelMetadataProvider方法中的CreateMetadata方法 public class MyDataAnnotationsModelMetadataProvider : DataAnnotationsModelMetadataProvider { protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName) { var md = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName); DataTypeAttribute dataTypeAttribute = attributes.OfType<DataTypeAttribute>().FirstOrDefault(); DisplayFormatAttribute displayFormatAttribute = attributes.OfType<DisplayFormatAttribute>().FirstOrDefault(); if (displayFormatAttribute == null && dataTypeAttribute != null) { displayFormatAttribute = dataTypeAttribute.DisplayFormat; } if (displayFormatAttribute == null) { md.ConvertEmptyStringToNull = false; } return md; } } }

    //在Global.asax的Application_Start方法中,重新覆盖原有对象
    ModelMetadataProviders.Current = new AiAn.GPS.Web.Models.MyDataAnnotationsModelMetadataProvider();
    

      

  • 相关阅读:
    springboot接口测试
    谷粒学院_day08_课程管理_添加课程之课程发布(后端开发)
    谷粒学院_day03_vue组件
    谷粒学院_day03_vue固定代码抽取
    vue自定义事件
    vue插槽slot
    vue基本语法
    Vue之axios异步通信
    无归岛[HNOI2009]
    仓库建设[ZJOI2007]
  • 原文地址:https://www.cnblogs.com/zhoushangwu/p/9641491.html
Copyright © 2011-2022 走看看