>source

... 실제로 전혀 문제가되지 않을 수도 있지만, 지금 당장 나에게 보이는 모습입니다.

여러 계층의 상속을 가진 컨트롤러 구조를 가지고 있습니다. 기본 컨트롤러는 컨트롤러를 구현하고 Create(Guid var1, DateTime? var2) 라는 메소드를 가지고 있습니다.   /MyDomain/Create/00000-0000-0000-000000 와 같이 불립니다 .

현재 서명 트리 Create() 를 사용하여 상속 트리에서 컨트롤러의 메소드를 구현하려고합니다.  QueryString 매개 변수를 사용합니다. (와이즈 와이즈) ) 그러나 ASP.NET은 이것이 "종점"으로 유효하지 않다고 판단하고 /MyDomain/Create?otherVar=somevalue 라는 오류 메시지를 표시합니다.

여기서 무슨 일이 일어나고 있는지 모르겠습니다. 동일한 컨트롤러에서 다른 메소드를 호출하려고하면 (예 : The parameters dictionary contains a null entry for parameter 'var1' of non-nullable type 'System.Guid' for method 'System.Web.Mvc.ActionResult Create(System.Guid, System.Nullable`1[System.DateTime])' 와 같이 상속 스택에서 고유하지 않고 이름이 높지 않은 이름으로) ) 문제없이 작동합니다.

이 문제로 google-fu가 부족합니다.

/MyDomain/DifferentMethod
  • 답변 # 1

    그래서 다음과 같은 것이 있습니다 :

    public abstract class BaseController{
     [HttpGet]
     public IActionResult Create(Guid var1, DateTime var2){..
    }
    
    

    public class SomeClassController : BaseController{
     [HttpGet]
     public IActionResult Create(){..
    }
    
    

    문제는 같은 이름과 다른 서명을 가진 2 개의 경로를 가질 수 없다는 것입니다. url '/ blalbalba/Create /'마녀와 함께 라우팅이 가고 싶은 곳을 정확히 알지 못하기 때문입니다. 기본 클래스 또는 상속 된 적이 있습니까? 그렇게 명확하지 않습니다.

    P는이 답변을 살펴 봅니다 :

    ASP.NET MVC 모호한 동작 방법

관련 자료

  • 이전 node.js - google 드라이브 api v3 - 문서를 pdf로 변환
  • 다음 vue.js - VueJS 애플리케이션에서 Amadeus API 인증