Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么ScriptManager会在ASP.NET(Web表单)中的RequiredFieldValidator上导致回发?_C#_Asp.net_Scriptmanager_Requiredfieldvalidator - Fatal编程技术网

C# 为什么ScriptManager会在ASP.NET(Web表单)中的RequiredFieldValidator上导致回发?

C# 为什么ScriptManager会在ASP.NET(Web表单)中的RequiredFieldValidator上导致回发?,c#,asp.net,scriptmanager,requiredfieldvalidator,C#,Asp.net,Scriptmanager,Requiredfieldvalidator,在添加ScriptManager之前,当我单击登录按钮时,它会显示所需的字段警告,而不显示页面postback,但在此之后,它首先开始执行postback,然后验证字段 当页面上有UpdatePanel时,需要添加ScriptManager 如何修复此问题,使其不会在RequiredFieldValidator上进行回发 登录页面 还记得我吗? 忘记密码了? 取消 我感谢你为解决我的问题所做的努力。这样写吧 <asp:updatepanel id="LoginModalUp

在添加
ScriptManager
之前,当我单击登录按钮时,它会显示所需的字段警告,而不显示页面
postback
,但在此之后,它首先开始执行
postback
,然后验证字段

当页面上有
UpdatePanel
时,需要添加
ScriptManager

如何修复此问题,使其不会在
RequiredFieldValidator
上进行
回发

登录页面

还记得我吗?

忘记密码了?

取消
我感谢你为解决我的问题所做的努力。

这样写吧

 <asp:updatepanel id="LoginModalUpdatePanel" runat="server">
 <ContentTemplate>
//paste all codes inside here 
</ContentTemplate>
</asp:updatepanel>

//将所有代码粘贴到这里
像这样写

 <asp:updatepanel id="LoginModalUpdatePanel" runat="server">
 <ContentTemplate>
//paste all codes inside here 
</ContentTemplate>
</asp:updatepanel>

//将所有代码粘贴到这里

不久前我遇到了同样的问题,并且能够通过
Page.Validate()解决它

基本上,在我添加ScriptManager之前,一切都运行良好。当我单击更新按钮时,字段验证器将运行,并在满足要求之前阻止回发。添加ScriptManager标记后,页面将返回,呈现我的验证器几乎毫无用处

我所做的是在我的更新(提交)按钮点击事件中添加:

page.validate();
if (Page.IsValid)
{
    // Your update or submit code here.
}

这似乎很好用

不久前我遇到了同样的问题,并且能够通过
Page.Validate()解决它

基本上,在我添加ScriptManager之前,一切都运行良好。当我单击更新按钮时,字段验证器将运行,并在满足要求之前阻止回发。添加ScriptManager标记后,页面将返回,呈现我的验证器几乎毫无用处

我所做的是在我的更新(提交)按钮点击事件中添加:

page.validate();
if (Page.IsValid)
{
    // Your update or submit code here.
}


这似乎很好用

在这里您可以找到一些有趣的内容您是否尝试将ScriptManager放置在body标记中而不是表单标记中?是的,出现了这样的问题:“ScriptManager”类型的控件“FormScriptManager”必须放置在runat=server的表单标记中。粘贴所有代码,如必填字段和文本框,内容模板中的等。虽然不是对您的问题的直接回答,但为了避免您面临的问题,您可以使用Page.IsValid inside Page\u load事件处理程序。在这里您可以找到一些有趣的内容。您是否尝试将ScriptManager放在body标记而不是form标记中?是的,出现了这样的问题:“ScriptManager”类型的控件“FormScriptManager”必须放置在runat=server的表单标记中。请将所有代码(如必填字段和texbox等)粘贴到contentTemplate中…虽然不是对您的问题的直接回答,为了避免您面临的问题,我认为您可以在Page\u load事件处理程序中使用Page.IsValid。请解释您建议此答案的原因。这将有助于其他人我不需要将所有控件都放在UpdatePanel中。这将带来更多问题。当您使用任何服务器端控件进行回发时,整个页面都会得到刷新。这就是为什么我们使用asp.net ajax库,以便您可以使用ajax UpdatePanel控件启用部分呈现。update panel包含的ContentTemplate将在update panel中携带所有控件。在您的代码中,所有必需的字段代码都是放置在更新面板之外,因此它将占用整个页面回发。@Rajeeshmen我同意你的观点,但我不能将所有内容都放在UpdatePanel下,因为我在textbox和checkbox上使用引导和其他css样式,它们需要实际回发。当我在其中一些控件上使用UpdatePanel时,它们实际上会在submit方法中消失。@Kevin Maxwell您可以单独添加文本框值,而无需销毁复选框和其他函数。请解释您建议此答案的原因。这将有助于其他人我不需要将我的所有控件都放在UpdatePanel中。这将带来更多问题。当您使用任何服务器端控件进行回发时,整个页面都会得到刷新。这就是为什么我们使用asp.net ajax库,以便您可以使用ajax UpdatePanel控件启用部分呈现。update panel包含的ContentTemplate将在update panel中携带所有控件。在您的代码中,所有必需的字段代码都是放置在更新面板之外,因此它将占用整个页面回发。@Rajeeshmen我同意你的观点,但我不能将所有内容都放在UpdatePanel下,因为我在textbox和checkbox上使用引导和其他css样式,它们需要实际回发。当我在某些控件上使用UpdatePanel时,它们实际上会在submit方法中消失。@Kevin Maxwell您可以单独添加文本框值,而无需销毁复选框和其他函数。