C# 有两个不同的IActionResults,一个带参数,一个不带参数

C# 有两个不同的IActionResults,一个带参数,一个不带参数,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,我想得到这样不同的结果 [HttpGet] public IActionResult CreateTournament() { ViewData["Creator"] = "User"; TournamentDTO tournamentDTO = new TournamentDTO() { OrganisationID = "null", }

我想得到这样不同的结果

[HttpGet]
public IActionResult CreateTournament()
    {
        ViewData["Creator"] = "User";
        TournamentDTO tournamentDTO = new TournamentDTO()
        {
            OrganisationID = "null",
        };
        return View();
    }

[HttpGet]
public IActionResult CreateTournament(string OrganisationID)
    {
        ViewData["Creator"] = "Org";
        TournamentDTO tournamentDTO = new TournamentDTO()
        {
            OrganisationID = OrganisationID,
        };
        return View();
    }
但是当我尝试导航到这个页面时,它给出了一个错误

AbiguUsMatchException:请求匹配多个端点。比赛: F4deTournaments.Controllers.TournamentController.CreateTournaments(F4deTournaments) F4deTournaments.Controllers.TournamentController.CreateTournaments(F4deTournaments)

如果不将两个代码块放在同一个方法中,是否有解决方法

[HttpGet]
public IActionResult CreateTournament(string OrganisationID)
    {
        if( OrganisationID == string.empty)}
        {
            ViewData["Creator"] = "User";
            TournamentDTO tournamentDTO = new TournamentDTO()
            {
                OrganisationID = "null",
            };
            return View();
        } else {
            ViewData["Creator"] = "Org";
            TournamentDTO tournamentDTO = new TournamentDTO()
            {
            OrganisationID = OrganisationID,
            };
            return View();
        }
    }

默认情况下,操作参数是可选的,因此我更喜欢一种方法:

[HttpGet]
public IActionResult CreateTournament(string OrganisationID)
    {
        ViewData["Creator"] = OrganisationID == null? "Org" : "User";
        TournamentDTO tournamentDTO = new TournamentDTO()
        {
            OrganisationID = OrganisationID == null? "null" : OrganisationID
        };
        return View();
    }

第二个的URL看起来像什么?