【问题标题】:ASP.NET MVC & ADO.NET Entity Framework clientside validationASP.NET MVC 和 ADO.NET 实体框架客户端验证
【发布时间】:2011-02-13 03:58:52
【问题描述】:

使用 aspnet mvc2 和实体框架自动生成的模型:

是否可以告诉实体框架自动注释所有字段?例如:

如果数据库字段不为空,则添加 [必填] 如果 DB 字段是 nvarchar(x) 则添加 [StringLength(x)]

等等?

如果字段名称包含字符串“email”,例如 CustomerEmail - 我可以让 EF 使用适当的注释自动注释它([Regex()] 可能)

据我了解,如果模型字段被注释,并且我在控制器中同时使用 Html.ValidationMessageFor() 和 if (ModelState.IsValid),那么我需要做的就是进行基本的客户端输入验证工作吗?

谢谢

【问题讨论】:

  • 是的,它是重复的——我没有看到旧问题,因为它的问题和标签太模糊了。该问题的答案也没有帮助。

标签: entity-framework asp.net-mvc-2


【解决方案1】:

我不知道有任何自动生成的属性。

据我了解,如果模型字段被注释,并且我在控制器中同时使用 Html.ValidationMessageFor() 和 if (ModelState.IsValid),那么我需要做的就是基本客户端输入验证有效吗?

没错。 http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html

【讨论】:

  • 这似乎是一个普遍的要求。例如,数据库中的字段是 nvarchar(20),因此您希望能够以某种方式获得 [StringLength(20)] 的自动注释。必须为每个字段手动输入注释是非常错误的。
  • 我看到你的新博文 weblogs.asp.net/rajbk/archive/2010/05/04/… 解决了这个问题.. 非常感谢 +1 :)
  • JK,这个帖子是一个早期的尝试。例如,您不能对自动生成的字段进行任何更改。您可以将生成的类复制到另一个类中,但您必须做额外的工作以确保您的类同步。
【解决方案2】:

在 jQuery 中,您可以遍历页面中的每个对象。如果您要寻找的是客户端验证,您可以使用 jQuery 的字段验证。

【讨论】:

  • 拥有 50 多个表和数百个字段,任何解决方案都必须是自动的。当数据库已经包含描述是否需要字段、字段长度等元数据时,手动键入任何代码都是错误的。
  • 您可以通过将类应用于对象来将这些字段彼此分开。例如,您搜索每个输入字段,然后查找该字段中是否包含“chumbawamba”类名。
猜你喜欢
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 2010-09-14
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多