오버로드에 대해 보았던 모든 예는 일반적으로 다른 매개 변수가있는 동일한 이름의 두 메서드와 GET 동사를 사용하는 두 개의 메서드 만 사용하고 다른 하나는 POST를 사용합니다. 동일한 동사를 사용하여 같은 방법으로 두 개 이상의 오버로드를 수행 할 수 있습니까? 난 당신이 기본적으로 하나의 동사와 같은 작업 이름 과부하 수 있다고 생각하지 않습니다 Can you overload controller methods in ASP.NET MVC?동일한 동사를 사용하여 asp.net MVC 컨트롤러 메서드 오버로드?
답변
:
여기 내가 말하는 겁니다 무엇의 예입니다. 여러분이 가리키는 다른 스레드가 말하듯이, 메서드를 오버로드하여 & 속성을 사용하여 메서드에 매핑되는 동작을 변경할 수 있습니다. 그러나 나는 그것이 여러분이 찾고있는 것이 아니라고 추측합니다.
이전에 사용한 또 다른 옵션은 단순히 매개 변수에 nullable 값을 사용하는 것입니다. & 효과적으로 다른 서명을 병합하십시오. 그래서 대신 :
public ActionResult DoSomething(int? id, string? name)
아니 좋은 솔루션을하지만, 하나의 과부하 그냥 다음 서로의 너무 나쁜 타협을 구축하는 경우 :
public ActionResult DoSomething(int id)...
public ActionResult DoSomething(string name)...
는 있습니다.
가야 할 가치가있는 최종 옵션은 하나만 시도해 보았습니다. (시도하지 않고 &도 작동하는지는 모르지만 논리적으로해야합니다), ActionMethodSelectorAttribute
의 구현을 작성하여 ControllerContext
에서 메소드 서명 &에 전달 된 매개 변수가 가장 일치하는 부분을 시도합니다 (즉, 기본 구현보다 모호한 부분을 좀 더 엄격하게 해결하려고 시도합니다).
아니 겠지요. 내가 MVC 프레임 워크는 정말 매개 변수 목록에 넣어하든 상관하지 않았다는 것을 발견 때문에, 예를 들어, 내 작업은 같은 것입니다 :
public ActionResult Index(int id) {...}
이 같은 요청 괜찮 : Domain.com/Index.aspx 또는 Domain.com/Index.aspx?id=012901 또는 프로그래밍 언어로 오버 이후에도 Domain.com/Index.aspx?login=938293
입력을 사용하면 (같은 이름의) 다른 기능을 선택할 수 있다는 것을 의미 매개 변수,하지만이 경우 MVC는 그것에 대해 신경 안써! 그래서 ActionVerb 오버로드 이외에, 나는 그것이 좋지 않다라고 생각한다.
- 1. ASP.NET MVC 컨트롤러 메서드 시간 초과
- 2. ASP.net MVC 컨트롤러 작업 및 웹 메서드
- 3. 동일한 서명이있는 ASP.NET MVC 1.0 컨트롤러 작업
- 4. 동일한 이름을 가진 ASP.NET MVC 컨트롤러
- 5. RESTful 동사를 사용하는 IIS7.5 용 ASP.NET MVC 3 설정
- 6. ASP.NET MVC : 컨트롤러 구성
- 7. 오버로드 된 컨트롤러 메서드에서 ASP.net MVC 특성이 실행되지 않습니다.
- 8. 지방 ASP.NET MVC 컨트롤러
- 9. 어떻게 asp.net-MVC 컨트롤러
- 10. ASP.NET MVC 컨트롤러 디자인
- 11. ASP.NET MVC 컨트롤러 수명주기
- 12. ASP.NET MVC : 컨트롤러 생성자
- 13. ASP.NET MVC 파일 메서드
- 14. ASP.NET MVC : 컨트롤러 메서드 실행 후 TempData 지우기
- 15. ASP.NET MVC 컨트롤러
- 16. ASP.NET MVC 컨트롤러 분할
- 17. 나는 ASP.NET MVC 컨트롤러
- 18. IDisposable ASP.net MVC 컨트롤러
- 19. Asp.net MVC 상속 컨트롤러
- 20. JavaScript에서 asp.net mvc 컨트롤러
- 21. ASP.NET MVC - 컨트롤러 결합?
- 22. Asp.Net MVC - 모든 컨트롤러
- 23. ASP.NET MVC 컨트롤러 디자인
- 24. controlle에서 ASP.NET MVC 컨트롤러
- 25. asp.net mvc 일반 컨트롤러
- 26. 웹 서비스 메서드 오버로드
- 27. .Net에서 메서드 오버로드.
- 28. ASP.NET MVC - 콘솔 응용 프로그램의 컨트롤러 작업 메서드
- 29. asp.net mvc 컨트롤러 메서드 -> soap 웹 서비스
- 30. ASP.net MVC 컨트롤러 - 생성자 사용
이것은 내가하는 일이지만, public ActionResult DoSomething (int? id, string name) 으로 작성하고 메소드에서 String.IsNullOrEmpthy (name)에 대한 검사 만 수행하십시오. – Chris