我的模型来自SQL服务器数据库,我不允许字段包含 NULL 。 在我的MVC主页中编辑一行时,我得到了预期的结果:
无法将值NULL插入列'husnr',表'PrenSQL.dbo.adress';列不允许空值。更新失败。
所以我搜索了一些,发现并将其添加到所有字符串值。
[DisplayFormat(ConvertEmptyStringToNull = false)]
现在我的某些领域似乎有效,但不适合其他人......
在我的编辑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; }
...
所以我在Stackoverflow中找到了this,但是在相同的字段上得到了相同的错误。
我的问题是,如何将这些空字段作为空字符串进行POST?
编辑:当我创建一个新的(在这种情况下)Adress时,它会将字段POST回空。
答案 0 :(得分:1)
尝试将所有String.Empty用作默认值,而不是空值。 就像帖子Annotating properties on a model with default values
一样注意,如果将属性标记为[必需],则无法插入带有空字符串的记录作为值。
修改强>
当我创建一个新的(在这种情况下)Adress时,它会将字段POST回空。
您必须将当前表单上的属性添加为隐藏字段。只有这样才能通过POST发回值。
答案 1 :(得分:0)
为所有db varchar字段设置一个默认值,例如' - ',所以每当没有任何内容传递给它们时,insert不会失败,因为字符串将采用默认值。