1

请注意:我已经通过指向类似问题答案的链接回答了我自己的问题。一旦我被允许,我会接受这个答案(除非有人同时提出更好的答案)。

我有一个数据库列定义为NVARCHAR(1000) NOT NULL DEFAULT(N'')- 换句话说,一个不可为空的文本列,默认值为空白。

我有一个由 Linq-to-SQL 类设计器生成的模型类,它正确地将属性标识为不可为空。

我对那个属性有一个TextAreaFor看法。我UpdateModel在我的控制器中使用从表单中获取值并填充模型对象。

如果我查看网页并将文本区域留空,UpdateModel则坚持将属性设置为NULL而不是空字符串。(即使我在调用之前在代码中将值设置为空白UpdateModel,它仍然会用 覆盖它NULL)。当然,这会导致后续数据库更新失败。

可以NULL在调用后检查所有这些属性UpdateModel,但这似乎很荒谬——肯定有更好的方法吗?

请不要告诉我我需要一个自定义模型绑定器来处理这样一个简单的场景......!

4

2 回答 2

2

可能是重复的或以下内容:

MVC绑定表单数据问题

我担心自定义模型绑定器将是必要的。;)

于 2010-04-06T21:20:25.677 回答
0

您可能希望使用实体的部分类实现,该实现为该特定属性实现 on 属性更改处理程序。当您检测到该属性已更改为 NULL 时,只需将其更改为string.Empty. 这样,只要将 NULL 分配给属性,它就会重置为空字符串。

于 2010-04-06T21:40:12.410 回答