ASP.NET MVC의 메서드 오버로드
메서드 오버로딩은 일반적인 프로그래밍 기술이지만 ASP.NET MVC에서 가능합니까?
ASP.NET MVC에서 컨트롤러 메서드를 오버로드하려고 하면 다음 오류 메시지가 나타나는 경우가 많습니다. "컨트롤러 유형 'MyController'의 'MyMethod' 작업에 대한 현재 요청이 다음 작업 메서드 사이에서 모호합니다."
이 오류는 ASP.NET MVC가 동일한 작업 이름을 사용하더라도 매개 변수 목록이 다른 오버로드된 메서드를 구별할 수 없기 때문에 발생합니다.
ActionName 속성을 사용한 솔루션
이러한 한계를 극복하기 위해 [ActionName]
속성을 사용할 수 있습니다. 고유한 작업 이름을 지정하여 오버로드된 각 메서드를 구별하도록 ASP.NET MVC에 지시할 수 있습니다.
예:
<code class="language-csharp">[ActionName("MyOriginalAction")] public ActionResult MyAction(int id) { ... } [ActionName("MyOverloadedAction")] public ActionResult MyAction(string name) { ... }</code>
제한사항
[ActionName]
속성은 컨트롤러 메서드의 오버로드를 허용하지만 동일한 HTTP 메서드에 대해 다른 작업 이름을 사용해야 합니다. 이는 코드의 일관성과 가독성에 영향을 미칠 수 있습니다.
대체 방법
컨트롤러 메서드를 오버로드하는 대신 다음과 같은 다른 디자인 패턴을 사용해 보세요.
위 내용은 ASP.NET MVC에서 컨트롤러 메서드를 오버로드할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!