Die ScriptService Zeug ist meiner Meinung nach ein verstecktes Juwel in asp.net. Aufrufe an den Skriptdienst geben keine Rückmeldedaten und Viewstate aus, sie sind schlanke, schnelle JSON-Nutzdaten.
Heres der beste Teil, kann ASP.NET3.5 scriptmanager die meisten der Arbeit für Sie im Hinblick auf die Generierung einer JS-Methode für Sie aufrufen und auch alle erforderlichen JS-Klassen einrichten.
Ein einfaches Beispiel zum Abrufen von Details für eine "Person" unter der Annahme, dass Person eine C# -Klasse ist.
In PersonService.asmx:
namespace MyProj.Services {
[System.Web.Script.Services.ScriptService]
[System.Web.Script.Services.GenerateScriptType(typeof(Person))]
public class PersonService : System.Web.Services.WebService
{
[WebMethod, ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public Person GetPersonDetails(int id)
{
/* return Logic here */
}
}
}
In DetailsPage.aspx
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Services/PersonService.asmx" />
</Services>
</asp:ScriptManager>
Durch eine Einrichtung wie dieser, werden Sie nicht einmal die Hilfe von JQuery anrufen müssen der Service und erhalten Sie eine JS-Version Ihrer C# Person Klasse, .net macht das alles für Sie. Ein Beispiel für diesen Service von JS verwenden wäre:
MyProj.Services.PersonService.GetPersonDetails(id, _onDetailsCallbackSuccess, _requestFailed, null);
_onDetailsCallbackSuccess: function(result, userContext, methodName) {
//all persons properties are now intact and available
document.getElementById('txtFirstname').value = result.Firtname;
}
Auf jeden Fall wäre es dann wert sein, in die Sachen Ajax Script ASP.NET suchen. Auch wenn Sie dieses Mal nicht verwenden, ist es ein ziemlich schlechtes Feature.
Verbindungen
Danke, deine Antwort war sehr hilfreich. Ich habe den anderen als Antwort markiert, da er zuerst geantwortet hat, aber ich habe deine Antwort gewählt, da es nützlich sein wird, vorwärts zu gehen – jakejgordon
@jake: Du solltest die hilfreichste Antwort als Antwort markieren. Wir belohnen hier gute Antworten, keine schnellen Schreibkräfte. – Espo
Der erste Link (www.jankoatwarpspeed.com) zurück Seite nicht gefunden :(Möglicherweise wurde er zwischenzeitlich entfernt ... – Mochi