在MVC3项目中管理多个表单并有条件地进行验证

时间:2013-02-19 17:47:28

标签: asp.net-mvc-3 forms validation postback

我已经将两个单独的页面重构为一个,并且也合并了视图模型。

现在,在我的项目中,登录和注册表单在选项卡式视图中位于同一页面中。

我遇到的问题是验证。 第一个表单有两个必填字段,另一个表单有另外两个也是必填字段。如果我发布第一个表单,则其他两个字段的验证将失败。

我使用IValidatableObject进行了实验,但我做不了类似的事情:

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (PostPackOrigin == "LoginForm")
        {
            if(Username == "")
             yield return new ValidationResult("Username missing");
            if(Password == "")
             yield return new ValidationResult("Password missing");
        }
        if (PostPackOrigin == "RegistrationForm")
        {
            if(Name == "")
             yield return new ValidationResult("Name missing");
            if(Email == "")
             yield return new ValidationResult("Email missing");
        }
    }

或类似的东西。 我们如何检测回发的来源,还是有另一种方法来处理验证?

非常感谢

0 个答案:

没有答案