ASP.NET在Firefox中验证了验证客户端代码的渲染

时间:2009-01-07 23:05:46

标签: asp.net javascript iis validation

这个对我来说是一个难题。虽然一个相当模糊的问题很容易复制。这是因为我在网页上做了一些javascript工作,但也使用了ASP.NET提供的验证控件。

预先确定的一些细节:使用基于Vista的开发机器与3.5框架和IIS 7.我还有一台QA机器运行Windows Server 2003,也使用3.5框架但运行IIS 6。

使用简单的TextBox,验证控件和按钮来提取页面。例如:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Text is Required" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>  
<asp:Button ID="btnSubmit" runat="server" Text="Submit" />  

这里简单的ASP.NET验证控制代码......这里的想法是为必需字段生成客户端验证代码,除非文本框有字段,否则不会进行回发。如果浏览器不支持客户端脚本,那么ASP.NET将使用Page.IsValid属性在服务器端捕获它。

当我从基于Vista的开发机器运行时,会为IE和Firefox生成客户端脚本代码,并且可以正常工作

当我从基于win2003的QA机器运行时,还为两个浏览器生成验证器控件的客户端代码。 IE的验证码工作正常......但适用于Firefox。按下提交按钮(带有空文本框)时,客户端代码似乎被忽略并执行回发。现在验证错误被服务器端捕获 - 但我想首先知道它为什么不能正常工作。

这里有趣的怪癖是,如果我从开发机器(有效的那个)和QA机器(那个没有)的Firefox下获取页面源视图并比较它们 - 客户端验证代码是显着的不同。

关于如何更改以使客户端验证代码在使用QA机器的Firefox中工作的想法?

更新:有一些评论要求查看生成的来源。我已将Dev和QA源保存为.htm文件并将其压缩。您可以在http://www.optsolutions.com/testvalidation.zip

获取它们

2 个答案:

答案 0 :(得分:2)

检查您的web.config是否有xhtmlconformance,并确保它未设置为legacy。

http://aspadvice.com/blogs/rbirkby/archive/2006/11/01/Client_2D00_side-validation-in-Firefox.aspx

答案 1 :(得分:1)

我遇到了类似设置的相同问题。 browserCaps设置的差异是我到目前为止遇到的最有希望的可能性。

http://msdn.microsoft.com/en-us/library/sk9az15a(VS.80).aspx