繁体   English   中英

无效的回发或回调参数。 点击按钮

[英]Invalid postback or callback argument. on button click

我的 asp.net 网页中有以下代码片段。

<div id="descDiv" style="display:none;">
<form>
                            <asp:TextBox ID="inputDesc" Height="200px" Width="100%" runat="server" TextMode="MultiLine" placeholder="Enter any details you know about this city" required="required"></asp:TextBox>
                            <input type="button" Class="cancel" value="Cancel" OnClick="hideInput('descDiv');" /><asp:Button ID="Submit_Desc" CssClass="submit" runat="server" Text="Submit" OnClick="Submit_Desc_Click" />
                          </form>
                        </div>

当我单击提交按钮时,我收到此错误:

  Invalid postback or callback argument. Event validation is enabled using 
  <pages enableEventValidation="true"/> in configuration or 
  <%@ Page EnableEventValidation="true" %> in a page.  
  For security purposes, this feature verifies that arguments to postback or 
  callback events originate from the server control that originally rendered them.  
  If the data is valid and expected, use the
  ClientScriptManager.RegisterForEventValidation method in order to register the
  postback or callback data for validation.

该表单包含在另一个具有“runat”属性的主表单中。 我应该怎么做才能纠正这个问题?

编辑:

这是重现问题的最短代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div id="descDiv">
            <form>
                 <asp:TextBox ID="inputDesc" Height="200px" Width="100%" runat="server" TextMode="MultiLine" placeholder="Enter any details you know about this city" required="required"></asp:TextBox>
                  <input type="button" class="cancel" value="Cancel" onclick="hideInput('descDiv');" />
                  <asp:Button ID="Submit_Desc" CssClass="submit" runat="server" Text="Submit" OnClick="Submit_Desc_Click"/>
             </form>
         </div>
    </div>
        <form>
            <asp:TextBox ID="TextBox1" Height="200px" Width="100%" runat="server" TextMode="MultiLine" placeholder="Enter any details you know about this city" required="required"></asp:TextBox>
            <input type="button" class="cancel" value="Cancel" onclick="hideInput('descDiv');" />
             <asp:Button ID="Button1" CssClass="submit" runat="server" Text="Submit" OnClick="Submit_Desc_Click"/>
        </form>
    </form>
</body>
</html>

您的页面上不能有两个表单,请删除 div 下的表单标签。 要保留的必须是 runat="server" 形式,因为它是一个 .net 页面。

您可以做的是使用 .net 按钮并从背后的代码中处理它们所做的任何事情

<form id="form1" runat="server">
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
     <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />
</form>

  protected void Button1_Click(object sender, EventArgs e)
{

    // do something with button 1

}
protected void Button2_Click(object sender, EventArgs e)
{
    // do something with button 2
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM