>

** 편집-추가 된 쿼리 문자열

Core 2.2 사이트를 3.1로 업그레이드했지만 여전히 버그가있는 유일한 문제는 다음과 같습니다. 동일한 응용 프로그램에 일반 Razor 페이지와 API 컨트롤러가 있습니다. 공유 코드와 기능으로이를 쉽게 해결할 수 있습니다. 2.2에서는 다음과 같은 라우팅 설정에 문제가 없었습니다.

services.AddMvc()

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

Startup.ConfigureServicesStartup.Configure 각각.

내 컨트롤러는 다음과 같습니다

{
    [Route("api/[controller][")]
    [Produces("application/json")]
    [ApiController]
    public class RRateController : ControllerBase
    {
        public RRateController()
        {
        }
        [HttpGet]
        public async Task<clsObject> Get([FromQuery] string[] TopCodes)
        {
            clsObject obj = new clsObject();
            ...
            return obj;
        }
}

컨트롤러는 쿼리 문자열로 호출됩니다.

Root + '/API/RRate?TopCodes=Val1&TopCodes=Val2'

.net core 3.1로 업그레이드 중입니다.

   services.AddControllers();
    services.AddRazorPages();

   app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
        endpoints.MapControllers();
    };

ConfigureServicesConfigure .

내 문제는 TopCodes 컨트롤러로 전달되지 않습니다. 컨트롤러에 액세스했지만 어레이가 비어 있습니다. 매개 변수가없는 유사한 컨트롤러가 새 설정에서 제대로 작동합니다.

Controller \ Action \ parameter 패턴이있는 Razor 페이지와 API 컨트롤러 모두에서 작동하도록 엔드 포인트를 어떻게 구성해야합니까?

  • 답변 # 1

    이었다 [api/[controller][ 의도적인가? 해서는 안됩니다 api/[controller] ?

관련 자료

  • 이전 XCode iOS Swift APP에서 이전 ViewController 계층을 보여주는 상단 공간을 숨기는 방법은 무엇입니까?
  • 다음 sql server - EF Core 31 쿼리에서 HasConversion 및 HasMaxLength 매핑의 일관성없는 동작