C'è codice C# che richiede un controller esistente, analizzare i suoi metodi di azione pubblica e generare una classe proxy JavaScript in modo che possa essere facilmente chiamato da altro codice JavaScript? So già che possiamo usare jQuery per fare un $ .post e $ .get di chiamare i nostri servizi di Ajax, ma credo che il processo può essere semplificato per non dover specificare l'URL relativo del URL del servizio web AJAX e un nome di parametro per ogni input dei parametri.Esiste un progetto che genera automaticamente codice proxy JavaScript per chiamare i metodi di azione ASP.NET MVC?
Per esempio, diciamo che abbiamo la seguente controller 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};
}
}
vorrei chiamare i metodi di azione AJAX del controller utilizzando la seguente moda.
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");
});
Esiste un progetto che mi consente di farlo?
Aggiornamento
si scopre non c'è nessun progetto che fa quello che ho chiesto. Qualcosa che potrebbe essere utile, oltre a SignalR, è il progetto Controller Inspector di Phil Haack. Può ispezionare qualsiasi controller e rivelare quale metodo di azione ha, i parametri che accetta, i tipi, ecc.
Il seguente collegamento contiene il metodo getter per il recupero di dettagli su un determinato controller. https://github.com/Haacked/CodeHaacks/blob/master/src/MvcHaack.ControllerInspector/ControllerDetailer.cs
Aggiornamento 2
Doh. Phil Haack ha già sviluppato un proxy JavaScript. Il tutorial può essere trovato here.
Sembra che tu hai l'unica e la migliore risposta a questa domanda. Ho visto SignalR prima ed è fantastico ma non penso che la sua produzione sia pronta. Cercherò di estrarre qualsiasi codice che posso da SignalR. Grazie! – burnt1ce