Las cosas ScriptService en mi opinión es una joya escondida en asp.net. Las llamadas al servicio de scripts no se transmiten desde datos + viewstate, son cargas lentas y rápidas de JSON.
Heres la mejor parte, el scriptmanager de ASP.NET3.5 puede hacer la mayor parte del trabajo para usted en cuanto a generar un método JS para que usted llame y también configurar cualquier clase JS necesaria.
Un ejemplo simple para obtener detalles para una "Persona", suponiendo que Persona es una clase C#.
En 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 */
}
}
}
En DetailsPage.aspx
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Services/PersonService.asmx" />
</Services>
</asp:ScriptManager>
Mediante el uso de una configuración como esta, que ni siquiera se necesita la ayuda de jQuery para llamar el servicio y recuperar una versión JS de su clase C# Person, .net lo hace todo por usted. Un ejemplo del uso de este servicio de JS sería:
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;
}
De todos modos, sería más que vale la pena analizar las cosas ASP.NET Ajax ScriptService. Incluso si decides no usarlo esta vez, es una característica bastante malvada.
Enlaces
Gracias, su respuesta fue realmente útil. Marqué el otro como la respuesta ya que él respondió primero, pero voté su respuesta, ya que será útil en adelante – jakejgordon
@jake: debe marcar la respuesta más útil como la respuesta. Aquí estamos recompensando grandes respuestas, no mecanógrafos rápidos. – Espo
El primer enlace (www.jankoatwarpspeed.com) devuelve Página no encontrada :(Puede haberse eliminado entremedio ... – Mochi