Как вызвать перегруженную функцию C # через JQuery в Asp.Net MVC 2 - PullRequest
5 голосов
/ 19 января 2012

У меня возникла проблема при вызове перегруженной функции C # через метод jquery post.

У меня есть две функции в c #

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

Теперь, когда я вызываю функцию, которая имеет один параметр в jqueryкак это

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

Это дает мне эту ошибку

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

Я хочу знать, как я могу вызвать эти перегруженные функции.Я использую Asp.Net MVC 2 с C #

1 Ответ

7 голосов
/ 19 января 2012

ASP.NET MVC обычно не допускает перегрузок действий. Если вы хотите делать разные вещи в зависимости от содержимого, которое вы отправляете на сервер, вам следует рассмотреть возможность разделения обработки между двумя функциями с разными именами (очевидно, разными именами действий и разными URL-адресами). Если вы хотите сохранить перегрузку в коде, вам все равно следует декорировать эти функции с помощью атрибутов [ActionName("%some_name_here%")], дающих им разные имена.

Если вы хотите сохранить одно имя действия, тогда создайте «Front-End» действие с двумя параметрами a и b и там в коде действия проверьте, если b==null. Если b равно нулю, вызовите перегрузку func (a), в противном случае вызовите func (a, b).

...