2012-01-19 9 views
5

Si verifica un problema durante il richiamo della funzione C# sovraccaricata tramite il metodo jquery post.Come chiamare la funzione C# sovraccaricata tramite JQuery in Asp.Net MVC 2

mi hanno due funzioni in C#

string func(string a) 
string func(string a, string b) 

Ora quando chiamo funzione che ha un parametro in jQuery come questo

var url = '<%= Url.Action("func", "Team") %>';     
$.post(url, { a: "test" }, function (data) { 
}); 

Mi dà questo errore

The current request for action 'func' on controller type 'TeamController' is 
ambiguous between the following action methods 

I voglio sapere come posso chiamare queste funzioni sovraccariche. Sto usando Asp.Net MVC 2 con C#

+1

@jim dispite cosa può suggerire il titolo e il tag, questa domanda ha quasi * nulla * da fare solo JavaScript o jQuery –

+0

Auto corretto sul treno mi ha, "solo" dovrebbe essere "con", per l'ultimo commento a ha senso –

+0

Sono anche di fronte a questa situazione ma su Web Forms non MVC. Utilizzare null come soluzione alternativa. –

risposta

7

ASP.NET MVC generalmente non consente sovraccarichi di azioni. Se vuoi fare cose diverse a seconda del contenuto che stai inviando al server, dovresti considerare l'elaborazione seprata tra due funzioni con nomi diversi (apparentemente diversi nomi di azioni e URL diversi). Se vuoi mantenere il sovraccarico nel codice, dovresti comunque decorare queste funzioni con gli attributi [ActionName("%some_name_here%")] assegnandogli nomi diversi.

Se si desidera mantenere il nome di azione singola, creare un'azione "Front-End" con due parametri a e b e nel codice azione verificare se b==null. Se b è nullo, chiamare func (a) overload, altrimenti chiamare func (a, b).

Problemi correlati