代码之家  ›  专栏  ›  技术社区  ›  ebattulga

如何创建使用两个或多个字段的asp.net MVC自定义模型验证

  •  0
  • ebattulga  · 技术社区  · 15 年前

    我需要以下属性:

    1.例如:我有两个字段。第一个是复选框,第二个是文本框。如果第一个控件被选中。第二个字段必须是 Required 属性。第一个控件未选中。不需要第二个控件。

    [Required]
    public boolean showHeader{get;set;}
    
    [IFRequired("showHeader",true)]
    public string HeaderText{get;set;}
    

    2.例如:我有2个字段。新密码,确认密码。属性必须检查此2字段是否相等。

    [Required]
    public string newPassword{get;set;}
    
    [Expression("newPassword",ExpressionAttributeEnum.Equils)]
    public string confirmPassword{get;set;}
    

    如何创建上述属性?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Stefanvds    15 年前

    这不可能使用属性。

    不过,你可以很容易地做到这一点。

    public ActionResult Create(FormCollection collection) {
        ///do your checks here which you cant do using attributes
        ModelState.AddModelError("fieldname", "yourErrorMessage");
    
        if (ModelState.IsValid) {
            ////.........
        }
        return View();
    }
    
        2
  •  0
  •   Community Mohan Dere    9 年前

    对于点2,如果使用MVC3,请使用Compare属性

    [必需] 公共字符串newPassword{get;set;}

    [比较(] 公共字符串confirmPassword{get;set;}

    看看这个 SO 第一部分问答