MVC:AmbiguousActionException:匹配多个动作

时间:2018-04-15 02:40:06

标签: asp.net-mvc asp.net-core-mvc

我在创建两个具有相同名称的操作时遇到了一些问题,但是1有一个参数而另一个没有,我总是得到这个错误:

错误:

  

AmbiguousActionException:匹配多个动作。以下操作匹配路由数据并满足所有约束:

这些是我的行动:

public IActionResult Skills(string skill)
{
   return View("SkillDetails");
}

public IActionResult Skills()
{
   return View("Skills");
}

这些是我的路线:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "WithSkill",
        template: "Home/Skills/{skill}");

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

1 个答案:

答案 0 :(得分:2)

您无法单独区分操作参数。尝试重命名动作,或使用不同的HttpMethod,如果一个是Get,一个是Post。或者做这样的事情。

public IActionResult Skills(string skill)
{
   if(string.IsNullOrEmpty(skill)
      return View("Skill");
   return View("SkillDetails");
}