使用服务器端验证器和模态对话框(jquery)?

时间:2010-12-02 18:21:22

标签: asp.net jquery simplemodal

是否有一种直接的方法可以在模式对话框中显示的窗体中使用ASP.NET的验证控件进行服务器端验证?我正在使用jQuery和SimpleModal(在C#,VS2010,.NET 4.0中)

我有一个模态表单,工作正常。我需要使用服务器端验证,因为逻辑取决于特定于所访问记录的数据

我正在进行的项目的解决方案是使用jQuery ajax调用将所有表单数据传递给服务器,并在允许帖子继续之前获取验证结果。但这实现起来相对耗时,而且在某些情况下我现在处理的所有验证代码已经存在。

第一个挑战是当然模态对话框将在完整的回发中关闭。所以你可以在对话框中放置一个UpdatePanel ......但是,如果不考虑这个太多,我会认为它不会很好。它没有。打开模式对话框的表单已经在UpdatePanel中,这进一步使问题更加困惑。

无论如何,我尝试将模态表单的内容放在UpdatePanel中以备它。它实际上做了部分回发,对话框保持打开状态,但对话框的内容不会更改我更改服务器端的任何内容。但是,如果我在测试验证代码后关闭并重新打开同一页面上的对话框,则其内容实际上已更新以反映这些更改。显然,呈现对话框的方式令ASP.NET感到困惑。或相反亦然。但这从一开始就显得粗略。

我没有试图破解我的方式解决这个问题,而是希望其他人有一些关于更好的方法来解决这个问题的建议。或者只是告诉我,我正在努力将苹果和橙子混合在一起,如果这是唯一明智的做法,我应该将它保留在客户端(或客户端+ jQuery ajax)。

1 个答案:

答案 0 :(得分:0)

我采取的两种方法:

1)通过ajax提交数据,响应包括成功:true或false。如果为false,则会显示一条消息,详细说明问题。

2)正常提交表格。如果存在验证问题,但页面上隐藏div中的错误并写入JS以在页面加载时检查该div中的内容并根据需要显示警告/错误。