c# - 回发或回调参数无效。单击按钮

标签 c# asp.net webforms

我的 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
}

关于c# - 回发或回调参数无效。单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21162909/

相关文章:

c# - 是否有一种标准方法可以将 .NET 字符串编码为 JavaScript 字符串以便在 MS Ajax 中使用?

c# - 如何在 VSTS 中调试 ashx 文件?

Javascript popupWindow 并填写一些网络表单字段

c# - 在 WPF 应用程序中显示和筛选 XML 数据

c# - 使用 ASP.net C# 从 html 选择列表中获取所有项目

c# - 使用 WPF 部分创建选项卡式侧边栏

asp.net - jqTouch 与 ASP.NET Webforms

c# - 为什么我不能将此接口(interface)作为参数传递?

c# - 按钮.MouseDown

c# - LinQ 如何将 1 之类的整数更改为字符串 001