ASP.NET Formen: die Verwendung von jquery zu posten asp.net Seite Methode mit Parametern
Ich habe gesehen, viele Fragen, aber nirgendwo habe ich gefunden, ein einfaches Beispiel für code, der Parameter übergibt zurück zu einer Seite, die Methode über jquery.
Ist, habe ich mich durch einige Beispiele an encosia.com (danke, Dave) aber noch nicht geschafft es zum laufen zu bringen. Hier der code bisher:
Aktualisiert - added-code zu übergeben, params, aber es funktioniert immer noch nicht.
test.aspx:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>test page</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//Add the page method call as an onclick handler for the div.
$("#Result").click(function() {
var intxt = document.getElementById("<%= txtIn.ClientID %>").value;
var params = $.toJSON({ 'inStr': intxt });
$.ajax({
type: "POST",
url: "test.aspx/RunTest",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#Result").text(msg);
}
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="Result">Click here</div>
<asp:TextBox ID="txtIn" runat="server"></asp:TextBox>
</form>
</body>
</html>
und im test.aspx.vb:
<WebMethod()> _
Public Shared Function RunTest(ByVal instr As String) As String
Return "this is your string: " + instr
End Function
Update:
Den RunTest menthod oben wird nie aufgerufen. Jedoch, wenn ich die auch haben:
<WebMethod()> _
Public Shared Function RunTest() As String
Return "no params here"
End Function
Dann die 2. Methode aufgerufen WIRD.
Was bin ich? Ist das der falsche Ansatz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Parameter sind case-Sensitiv. Ihre
Entspricht nicht der Signatur der Methode:
Den rest sieht es richtig.
Ich würde generell vorschlagen,mit json2.js' JSON.stringify() zum serialisieren der JSON-auf der client-Seite, statt von anderen plugins wie $.toJSON. json2.js' API entspricht dem ECMA-standard für browser-native JSON-Unterstützung, die neueren Browser sind der Umsetzung (IE8 und Fx3.5 bisher). Also, wenn Sie die Verwendung von JSON.stringify() zum serialisieren der Objekte, es wird automatisch ein upgrade auf die schnellere, native Funktionen in diesen Browsern.
Sehen https://stackoverflow.com/questions/570962/jquery-ajax-form-submitting
Müssen Sie zum laden der textbox durch ClientID.