我想要这样的不同IActionResults。
[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();
}
但是,当我尝试导航到此页面时,它给出了一个错误
AbiguousMatchException:请求匹配了多个端点。匹配项:F4DEDTournaments.Controllers.TournamentController.CreateTournament(F4DEDTournaments)F4DEDTournaments.Controllers.TournamentController.CreateTournament(F4DEDTournaments)
是否可以将两个代码块都置于相同的方法中,从而解决此问题?
[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();
}