ASP.NET MVC 3模型的部分验证

我有一个非常大的60多个问题表格,用户可以开始填写,保存在任何地方,并保持不变。 表单可以从数据库重新加载并随时完成,然后关闭它。

我有以下模型:

public class Questionnaire{

  [Required]
  public string Question1 { get; set; }

  [Required]
  [Range(1, 10)]
  public int Quesiton2 { get; set; }

  public string Question3 {get;set}
}

当用户决定保存表单并执行完整验证时,我需要部分验证模型,包括在用户选择关闭表单时验证所需文件。

实施它的最佳方式是什么?


它不完全清楚你的问题/例子究竟你需要什么,但我发现一般来说,在MVC中分割我的视图模型是处理这种事情的最好方法。

即将你的实体分成几部分,每一部分都可以自行验证。

然后使用部分视图/自定义编辑器模板为每个视图提供UI组件

然后,您可以根据需要将这些组件组合为一种形式,或者根据需要在同一页面,多页面向导或单页渐进式AJAX向导或任何您想要的内容上提供单独的表单)。

保持干爽简单。

关键是不用担心在需要时添加额外的视图模型层,以使您的数据对象符合您的UI要求

当您特别需要解除它们时,不要受到业务对象/实体的约束 - 它很容易将业务对象的各个部分从组成视图模型部分重新组合在一起。


你为什么使用Question1 .. Questionn ..每个问题1个对象,如果你添加一个新的问题?...你应该有一个问题列表,然后根据你的业务规则保存之前手动验证。


你可以在Save()上有两个单独的动作Save()和Submit()并禁用验证(或者做最小限度的验证)。

链接地址: http://www.djcxy.com/p/5177.html

上一篇: Partial validation of ASP.NET MVC 3 Models

下一篇: Listview onItemClick sometimes not responding