2014-01-16 3 views
1

У меня есть следующий фрагмент кода на моей веб-странице 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» атрибута. Что я должен сделать, чтобы исправить эту проблему?

EDIT:

Вот самый короткий код, чтобы воспроизвести проблему:

<%@ 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> 
+0

Вы вводом любой разметки в текстовом поле? – Abhitalks

+0

@abhitalks нет простого текста – Tehreem

+0

@Tehreem, html формы никогда не могут быть вложенными. – dotNETbeginner

ответ

4

Вы не можете иметь две формы на странице, удалите тэг формы только под 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 
} 
+0

, но тогда у меня будет две кнопки отправки в одной форме. Также страница не будет знать, какую часть я хочу отправить – Tehreem

+0

. Я помечен как ответ, потому что он частично отвечает на вопрос. Другая половина заключается в том, что я должен использовать GroupValidators вместо нескольких форм внутри формы. – Tehreem

Смежные вопросы