代码之家  ›  专栏  ›  技术社区  ›  Gary McGill

带有nvarchar非空列的ASP.NET MVC 2 RC2模型绑定

  •  1
  • Gary McGill  · 技术社区  · 16 年前

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

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

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

    我有一个 TextAreaFor 在我看来,是为了那块地产。我在用 UpdateModel 在我的控制器中,从窗体中获取值并填充模型对象。

    如果我查看网页并将文本区域留空, 更新模型 坚持将财产 NULL 而不是空字符串。(即使我在调用之前将代码中的值设置为空 更新模型 它仍然用 无效的 )当然,这会导致随后的数据库更新失败。

    能够 检查所有此类属性 无效的 打电话后 更新模型 但这似乎很荒谬——肯定有更好的方法吗?

    请不要告诉我我需要一个定制的模型活页夹,这样一个简单的场景…!

    2 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    8 年前

    可能是重复的,或者这行中的某些内容:

    MVC binding form data problem

    我担心定制模型活页夹是必要的。;)

        2
  •  0
  •   tvanfosson    16 年前

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

    推荐文章