繁体   English   中英

ASP.NET MVC 3模型验证

[英]ASP.NET MVC 3 Model Validation

我有一个名为“组织”的模型,在该组织上,我有一个远程验证属性:

[Required(ErrorMessage = "The organisation name is required")]
    [Remote("NameCheck", "Manage", "Organisations", ErrorMessage="That organisation      already exists")]
    public string Name { get; set; }

这将检查某人要添加的组织的名称是否不存在。 如果是这样,他们会收到一条错误消息,说明是这样。

我正在使用强类型视图来呈现组织的“编辑”视图。 因为有人在编辑,所以我不希望运行该远程验证,因为该组织当然会存在。

有什么办法可以做到这一点? 基本上,在编辑组织时以某种方式关闭远程验证,并在创建组织时将其打开。

您可以/ 应该对两个视图使用不同的视图模型。 因此,例如,您将具有CreateOrganizationViewModel和UpdateOrganizationViewModel。 在第一个视图模型上,Name属性将用remote属性修饰,而在第二个视图模型上,则不会。

public class BaseOrganizationModel {
  public int ID {get; set;}
}

public class UpdateOrganizationModel : BaseOrganizationModel {
    [Required(ErrorMessage = "The organisation name is required")]
    public string Name { get; set; }

}

public class InsertOrganizationModel : BaseOrganizationModel {
    [Required(ErrorMessage = "The organisation name is required")]
    [Remote("NameCheck", "Manage", "Organisations", ErrorMessage="That organisation      already exists")]
    public string Name { get; set; }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM