【问题标题】:Have 2 Different IActionResults, one with a parameter and one without a parameter有 2 个不同的 IActionResults,一个带参数,一个不带参数
【发布时间】:2020-11-30 19:23:38
【问题描述】:

我想拥有像这样的不同 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();
        }
    }

【问题讨论】:

  • 第二个的 URL 是什么样的?

标签: c# asp.net-mvc model-view-controller


【解决方案1】:

动作参数默认是可选的,所以我更喜欢一种方法:

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

【讨论】:

    猜你喜欢
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多