c# - 歧义操作异常 : Multiple actions matched in MVC Core

标签 c# asp.net-mvc .net-core

我宁愿有一个简单的 Controller ,其中只有 2 个这样的方法。

public class ColorsController : Controller
{
    // GET: /<controller>/
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult Index(int id)
    {
        return View();
    }
}

我在不同的命名空间中也有一个同名的 api。我尝试实现存储库模式,突然间我得到了 AmbigousActionException。我的 Web api 包含在 WebUI.controllers.api 命名空间中。 网络 API 是:

namespace ePress.WebUI.Controllers.api
{
[Route("api/[controller]")]
public class ColorsController : Controller
{
    private IColorRepository _repository;
    public ColorsController(IColorRepository colorRepository)
    {
        _repository = colorRepository;
    }
    // GET: api/values
    [HttpGet]
    public IActionResult Get()
    {
        return Ok(_repository.Get());
    }

    // GET api/values/5
    [HttpGet("{id}")]
    public IActionResult Get(int id)
    {
        var color = _repository.Get(id);
        if (color != null)
            return Ok(color);
        return NotFound("Color not found");
    }
 }

这是Startup类中的路由配置:

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

即使将主 Controller 的名称更改为 Colors2Controller,我仍然遇到相同的错误。 任何帮助将不胜感激。

最佳答案

我在一些非常基础的事情上费了好几个小时。 碰巧我的 Controller 中的 2 个 Action 都被评估为相同的。 所以我所要做的就是注释掉其中一种操作方法。

public class ColorsController : Controller
{
    // GET: /<controller>/
    public IActionResult Index()
    {
        return View();
    }

    //public IActionResult Index(int id)
    //{
    //    return View();
    //}
}

它现在解决了,这不是问题,因为 api 和我实现的存储库模式。 希望这对另一个人有帮助。

关于c# - 歧义操作异常 : Multiple actions matched in MVC Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40828848/

相关文章:

c# - 使用 AssemblyConfigurationEntry 在 PowerShell 中加载程序集时出现问题

.net - 如何使用 jenkins 管道发布 dotnet 核心测试?

c# - Oracle Entity Framework 自动增量?

c# - 静态抽象类

c# - 'System.Web.HttpApplication.User' 是一个 'property' 但像 'type' 一样使用

asp.net-mvc - 何时使用RedirectToAction以及在哪里使用RedirectToRouteResult?

asp.net - Cookie 是否在同一主机上的两个应用程序之间共享

c# - 如何覆盖 MassTransit 默认交换和队列拓扑约定?

azure - 如何在测试代码中以用户身份登录 Azure Active Directory?

c# - 如何在 Excel VSTO 加载项中为 OnUndo 调用 C# 方法?