繁体   English   中英

MVC保存空字符串默认值null

[英]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; }
...

POST编辑信息

所以,我发现这个在这里,但#1登上了相同的字段相同的错误。

我的问题是,如何将这些空字段作为空字符串发送到POST?

编辑:当我创建一个新的地址(在这种情况下)时,它将把字段退回为空。

尝试将所有String.Empty用作默认值,而不是null值。 就像在文章中使用默认值对模型的注释属性

注意,如果将属性标记为[Required],将无法插入以空字符串作为值的记录。

编辑

当我创建一个新的地址(在这种情况下)时,它将把字段退回为空。

您必须在当前表单上将属性添加为隐藏字段。 只有这样,值才能通过POST发送回去。

为所有数据库varchar字段(例如'-')设置默认值,这样,只要不传递任何内容,插入就不会失败,因为字符串将采用默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM