请注意:我已回答了我自己的问题,并提供了类似问题答案的链接。一旦我被允许,我会接受这个答案(除非有人在提出更好的答案的同时)。
我有一个数据库列定义为NVARCHAR(1000) NOT NULL DEFAULT(N'')
- 换句话说,是一个不可为空的文本列,其默认值为空。
我有一个由Linq-to-SQL Classes设计器生成的模型类,它正确地将该属性标识为而不是可以为空。
我的视图中有TextAreaFor
。我在我的控制器中使用UpdateModel
来从表单中获取值并填充模型对象。
如果我查看网页并将文本区域留空,UpdateModel
坚持将属性设置为NULL
而不是空字符串。 (即使我在调用UpdateModel
之前在代码中将值设置为空白,它仍会使用NULL
覆盖该值。当然,这会导致后续数据库更新失败。
我可以在调用NULL
后检查UpdateModel
的所有此类属性,但这看起来很荒谬 - 当然必须有更好的方法吗?
请不要告诉我,我需要一个自定义模型绑定器来实现这样一个简单的场景......!
答案 0 :(得分:2)
答案 1 :(得分:0)
您可能希望使用实体的部分类实现来实现该特定属性的on属性更改处理程序。当您检测到属性已更改为NULL时,只需将其更改为string.Empty
即可。这样,无论何时将NULL分配给属性,它都会重置为空字符串。