我正在为一个遗留项目做一些工作,这个项目已经从1.1升级到2.0,现在设置为3.5。目前我遇到一些问题,当我点击提交时,所需的字段验证器没有运行。
这是一个非常简单的设置。我有两个文本框,当用户单击提交时我需要填充两个文本框,我有RFV指向每个文本框但是当我单击提交按钮时,不会触发验证,然后生成的代码会被炸毁。我尝试在相关控件上使用ValidationGroup,并将Display从“Dynamic”更改为“Static”,但没有结果。
在使用AJAX控件时我也遇到了一些问题,我得到了javascript错误等等,这对我来说会指向关于客户端库的错误配置。当然,我不确定如何去查明配置中的错误。有什么建议吗?
谢谢,
麦克
答案 0 :(得分:2)
至于具体错误,我不确定,但我会提醒您修改代码以确保您在服务器端没有问题。
在方法中添加一个检查,以确保验证器有效。
if(Page.IsValid)
{
//Now do your thing
}
答案 1 :(得分:0)
如果您收到javascript错误,那么这就是您的验证控件没有触发的原因。
尝试使用名为FireBug的工具来确定您的javascript错误产生的位置。
答案 2 :(得分:0)
我在Telerik的支持论坛上研究类似的问题时找到了解决方案。诀窍是从web.config中删除标记<xhtmlConformance mode="Legacy"/>
,因为这会以某种方式阻止正确的JS库加载到页面中。
答案 3 :(得分:0)
虽然这不是特定情况的答案,但这是 对“Sys.WebForms未定义”的回答,此链接显示在顶部搜索结果中。所以我想把这个答案包含在其他任何浪费2天试图找到答案的人身上。
如果Mike C给出的答案对您不起作用,而您正在使用一个不起眼的或更新的浏览器,请考虑发送到ASP.Net的用户代理标头是否导致它“禁用”ajax。
在我的情况下,此错误仅在iPad上以全屏模式发生。答案是告诉ASP.Net浏览器支持ajax。我只是将其添加到我的页面代码后面:
protected override void OnPreInit(EventArgs e)
{
if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1)
{
this.ClientTarget = "uplevel";
}
base.OnPreInit(e);
}
有关详细信息,请参阅Sys.WebForms is undefined on iPad。