¿Hay código C# que tome un controlador existente, analice sus métodos de acción públicos y genere una clase proxy de JavaScript para que pueda ser llamado fácilmente por otro código JavaScript? Ya sé que podemos usar jquery para hacer $ .post y $ .get para llamar a nuestros servicios de ajax, pero creo que el proceso se puede simplificar al no tener que especificar la URL relativa de la URL del servicio web de AJAX y un nombre de parámetro para cada uno entrada de parámetros¿Hay algún proyecto que genere código proxy de JavaScript automáticamente para llamar a los métodos de acción ASP.NET MVC?
Por ejemplo, supongamos que tenemos el siguiente controlador C#:
public class CustomerController : Controller
{
public JsonResult Create(string name, string address)
{
return new JsonResult {Data = 11111};
}
public JsonResult Update(int id, string name, string address)
{
return new JsonResult {Data = true};
}
}
quisiera llamar a los métodos de acción AJAX del controlador mediante el uso de la siguiente manera.
Proxy.Customer.Create("Scott Gu", "Somewhere in Redmond").done(function(id) {
/* id is an int and not an string */
Proxy.Customer.Update(id, "Scott Gu", "Somewhere in Seattle");
});
¿Existe un proyecto que me permita hacer esto?
actualización
resulta que no hay proyecto que hace lo que yo pedí. Algo que podría ser útil, además de SignalR, es el proyecto Inspector de controladores de Phil Haack. Se puede inspeccionar cualquier controlador dado y revelar lo método de acción que tiene, los parámetros que acepta, sus tipos, etc.
El siguiente enlace contiene el método getter para recuperar una detalles acerca de un controlador dado. https://github.com/Haacked/CodeHaacks/blob/master/src/MvcHaack.ControllerInspector/ControllerDetailer.cs
Actualización 2
Doh. Phil Haack ya desarrolló un proxy de JavaScript. Tutorial se puede encontrar here.
Parece que usted tiene la única y mejor respuesta a esta pregunta. He visto SignalR antes y es genial, pero no creo que su producción esté lista. Trataré de extraer cualquier código que pueda de SignalR. ¡Gracias! – burnt1ce