[英]Why is the default value of the string type null instead of an empty string?
[英]MVC save empty string default value null
我的模型来自一个SQL Server数据库,在该数据库中,我不允许字段包含NULL 。 在我的MVC主页中编辑一行时,我得到了预期的结果:
无法将值NULL插入表'PrenSQL.dbo.adress'的列'husnr'中; 列不允许为空。 更新失败。
所以我用谷歌搜索并找到并将其添加到所有字符串值。
[DisplayFormat(ConvertEmptyStringToNull = false)]
现在,对于我的某些领域,它似乎起作用,但对于其他领域却不起作用。
在我的Edit GET请求中,空白字段确实为空。 但是在POST中,有些为空“”,有些为null 。
...
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Husnr { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Husbokstav { get; set; }
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Etage { get; set; }
...
所以,我发现这个在这里,但#1登上了相同的字段相同的错误。
我的问题是,如何将这些空字段作为空字符串发送到POST?
编辑:当我创建一个新的地址(在这种情况下)时,它将把字段退回为空。
尝试将所有String.Empty用作默认值,而不是null值。 就像在文章中使用默认值对模型的注释属性
注意,如果将属性标记为[Required],将无法插入以空字符串作为值的记录。
编辑
当我创建一个新的地址(在这种情况下)时,它将把字段退回为空。
您必须在当前表单上将属性添加为隐藏字段。 只有这样,值才能通过POST发送回去。
为所有数据库varchar字段(例如'-')设置默认值,这样,只要不传递任何内容,插入就不会失败,因为字符串将采用默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.