我在创建两个具有相同名称的操作时遇到了一些问题,但是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?}");
});
答案 0 :(得分:2)
您无法单独区分操作参数。尝试重命名动作,或使用不同的HttpMethod,如果一个是Get,一个是Post。或者做这样的事情。
public IActionResult Skills(string skill)
{
if(string.IsNullOrEmpty(skill)
return View("Skill");
return View("SkillDetails");
}