微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET MVC将null转换为零长度字符串

如何解决ASP.NET MVC将null转换为零长度字符串

| 我正在使用MVC 3,并尝试将保留为空的字段作为零长度字符串(而不是空值)发送到数据库。这可能与数据注释属性有关吗? 如果不是,从null转换的最合适的地方是什么?是在模型验证期间吗?     

解决方法

我不会在验证器中执行此操作,但可能会在模型绑定中(甚至在模型本身中)执行此操作。 通常,在模型类中,我将字符串属性设置为默认为空字符串,并在其设置方法中,将null转换为空字符串。 一遍又一遍地写这些重复的东西有点痛苦,但是不必处理空值要好得多。     ,虽然并不理想,但这是我所知道的最好方式:在物业上方
[DisplayFormat(ConvertEmptyStringToNull = false)]
。它将逻辑保留在模型中,这是一种很好的做法,并且可以直接解决该问题。这是必须的,真是令人遗憾。
private string _summary = \"\";
[Required]
[DisplayFormat(ConvertEmptyStringToNull = false)]
public virtual string Summary
{
    get { return _summary; }
    set { _summary = value; }
}
    ,在构造函数中将属性设置为等于2。 或者,尽管这会花费更多,但您可以制作一个扩展方法来执行以下操作,然后在构造函数中调用它:
 var stringPropertyInfos = GetType()
                  .GetProperties(BindingFlags.Instance|BindingFlags.Public)
                  .Where(p => p.PropertyType == typeof(string));
 foreach(var propertyInfo in stringPropertyInfos){
     propertyInfo.SetValue(this,string.Empty,null);
 }
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。