ASP.NET MVC - 动态表单验证

时间:2013-11-15 22:41:19

标签: asp.net-mvc forms validation dynamic

我正在将ASP.NET WebForms应用程序升级到ASP.NET MVC。现有应用程序的一个功能是它具有动态表单生成器。每个表单都有步骤(使用在Wizard_Init事件中动态添加的向导控件)和验证(使用验证控件)。

我已经有了一些静态MVC表单,我在模型属性上使用数据注释属性,然后使用内置的不显眼验证来验证表单。

现在说我有以下型号:

public class Form {
    public string Name { get; set; }
    public IList<Step> Steps { get; set; }
}

public class Step {
    public string Name { get; set; }
    public IList<Field> Fields { get; set; }
}

public class Field {
    public string Name { get; set; }
    public bool IsRequired { get; set; }
}

显然字段是动态的,所以我不能使用数据注释属性。另外,我只想验证每一步。我认为一个选项是渲染表单中的所有步骤,并使用javascript显示/隐藏相应的步骤,因为他们点击下一个/上一个。但我再也看不出如何为此添加验证。另一个选择是使用Ajax在每个步骤中加载,但我再次努力使用这个概念。

如果有人可以提供帮助,我真的很感激。理想情况下,我希望获得有关实现此目的的最佳方法的建议,而不是链接到旧的第三方库,除非它是自ASP.NET MVC 3以来构建的。谢谢

2 个答案:

答案 0 :(得分:0)

我认为在您的情况下最好的做法是创建自己的验证脚本。它不难,也不复杂,你只能解决必要的事情。因此在我看来,只需使用js来隐藏,显示和验证您自己的脚本。 (只是验证未隐藏的字段。)

答案 1 :(得分:0)

如果字段是动态的,则表示您无法进行验证。

您可以通过将模型分解为更小的部分并为每个较小的模型添加验证来动态验证。