2012-01-19 1 views
5

jquery post 메서드를 통해 오버로드 된 C# 함수를 호출하는 동안 문제가 발생합니다. 나는 그것이 나에게이 오류Asp.Net MVC 2에서 JQuery를 통해 오버로드 된 C# 함수를 호출하는 방법

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

I를 제공이

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

같은 JQuery와 하나 개의 매개 변수가있는 함수를 호출 할 때

나는

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

이제 C#에서 두 가지 기능을 가지고 이러한 오버로드 된 함수를 어떻게 호출 할 수 있는지 알고 싶습니다. Im Asp.Net MVC 2 with C#

+1

@jim 제목과 태그가 암시 할 수있는 내용을 나타냅니다.이 질문은 JavaScript 또는 jQuery를 수행하는 데 거의 * 아무 것도 없습니다. –

+0

열차에서 자동 수정이 나에게있어 "그냥"은 "함께"해야합니다. 의미가있다 –

+0

나는 또한 MVC가 아닌 Web Forms에서 이러한 상황에 직면 해있다. 해결 방법으로 null을 사용합니다. –

답변

7

ASP.NET MVC는 일반적으로 작업 과부하를 허용하지 않습니다. 서버에 보내는 컨텐츠에 따라 다른 일을하고 싶다면 이름이 다른 두 함수 (다른 액션 이름과 다른 URL이 분명히 있음) 사이에서 seprating 처리를 고려해야합니다. 코드에서 오버로딩을 유지하려면 여전히 [ActionName("%some_name_here%")] 속성을 사용하여 해당 함수를 다른 이름으로 지정해야합니다.

단일 작업 이름을 유지하려는 경우 두 개의 매개 변수 ab이있는 "프런트 엔드"작업을 만들고 동작 코드에 b==null이 있는지 확인하십시오. b가 null의 경우, func (a) 오버로드를 호출합니다. 그렇지 않은 경우는 func (a, b)를 호출합니다.