2

在本地它有效,我知道它是“它在我的机器上有效”综合症,但我不明白为什么。

简单的网页、字段、必填字段验证器,例如

<asp:textbox id="tbEmail" runat="server" CssClass="field"></asp:textbox>                                            <asp:requiredfieldvalidator id="Requiredfieldvalidator2" runat="server" Display="Dynamic" ControlToValidate="tbEmail" ErrorMessage="Email is required" CssClass="required"></asp:requiredfieldvalidator>

按钮

<asp:button id="btnSendRequest" runat="server" Text="Submit" CausesValidation="True"></asp:button>

在本地它触发并且代码不运行,在部署的版本上验证器不触发并且代码运行。

应该很简单,但我盯着它看太久了。

谢谢大家 - 塔里克

4

5 回答 5

1

我在想同样的事情 - asp_regiis 将在您网站的根目录中创建 aspnet_client 文件夹。还要注意报告的 javascript 错误,它们将有助于诊断。

于 2009-02-25T01:58:08.860 回答
0

我不确定这是否与您的 .NET 版本相关,但您可能必须在服务器上运行 aspnet_regiis -i 才能安装脚本进行验证。在做任何事情之前,请仔细检查这个:)

我希望这会让你朝着正确的方向前进。

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

于 2009-02-25T01:54:28.120 回答
0

在这种情况下,我发现将本地获得的原始 HTML 输出与部署服务器上的输出进行比较会很有帮助。正如 Eric 指出的那样,您可能错过了已部署版本上的验证 javascript……但这肯定会告诉您。

于 2009-02-25T07:38:21.880 回答
0

安装 Fiddler:Fiddler并观察流量。加载页面时是否出现任何 404 或 500 HTTP 错误?它可能正在尝试加载必要的客户端验证文件,但遇到了问题。

于 2009-02-26T07:01:33.253 回答
0

不同之处可能在于,在您的本地测试中,您触发了客户端验证器,而在服务器上仅触发了服务器端。确保将 IsValid if 添加到您的方法中,例如:

void MyClickHandler(object sender, EventArgs e)
{
   if( IsValid)
   {
      //rest of the code
   }
}
于 2009-02-25T17:41:36.483 回答